home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / gfx / vtdevel3.lha / SourceAGA / Tunnel.s < prev    next >
Text File  |  1994-06-27  |  61KB  |  2,524 lines

  1. ;tunnel
  2.  
  3. rout            ;when this is off, the routine-file will be
  4.             ;assembled, on=testing
  5.             
  6. ;debug            ;when this is on, colors in the background will
  7.             ;show how much time the routine needs.
  8.  
  9. ;ntsctest        ;when this is on, the routineplayer is in ntsc-mode
  10.  
  11. ;ocs            ;off=AGA,on=OCS, testing not possible on OCS !
  12.  
  13. routinemode    equ    0    ;the routinemode !
  14.  
  15.  
  16. ; VideoTracker AGA developer source 25-12-93
  17. ; 24-bits colors, Super-HiRes, HAM8, maximum burstmode (64 pixels aligned)
  18. ; wich makes low-resolution overscan a bit ugly.
  19. ; no "interactive" support anymore, it's only used by Kick 1.3 users.
  20.  
  21. ; the first part of the source handles the things that are necessary to
  22. ; show the picture/copper and playing of the routine.
  23. ; the part between the "***" lines is the routine-source.
  24. ; at the bottom of the file, there are the necessary incbin-files who
  25. ; are needed to test the routine.
  26. ; these are saved with "save effect" in videotracker. they are raw
  27. ; data files which can be fonts,pictures,landscapes,vectorobjects
  28. ; etcetra.
  29. ; the incbin-files are put in the "variables" table, in the routine-
  30. ; player-handler
  31. ; the place where it's done can be found by searching for "!!!"
  32.  
  33. ;    opt    a+    ;devpac 3 optimize
  34.     opt    o+
  35.  
  36. vew_wid    equ    48
  37. vew_hgt    equ    290
  38. win_hgt    equ    117
  39. win_str    equ    $1a
  40.  
  41.         ifd    ocs
  42. pic_wid        equ    4        ;wide in bytes
  43. pic_hgt        equ    6        ;hoogte
  44. pic_dpt        equ    8        ;number planes
  45. pic_ani        equ    10        ;aantal effes (anim)
  46. pic_vew        equ    12        ;viewmode
  47. pic_cycstr    equ    14        ;cycle start (*4)
  48. pic_cycend    equ    15        ;cycle end (*4)
  49. pic_cycspd    equ    16        ;cycle speed (*4)
  50. pic_cycadd    equ    17        ;cycle add (*4)
  51. pic_palnum    equ    30        ;aantal kleuren
  52. pic_pal        equ    32        ;palette start
  53. pic_palsiz    equ    256*2        ;vaste palette size
  54. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  55.         endc
  56.         
  57.         ifnd    ocs
  58. pic_wid        equ    4        ;wide in bytes
  59. pic_hgt        equ    6        ;hoogte
  60. pic_dpt        equ    8        ;number planes
  61. pic_ani        equ    10        ;aantal effes (anim)
  62. pic_vew        equ    12        ;viewmode
  63. pic_cycstr    equ    14        ;cycle start (*8)
  64. pic_cycend    equ    15        ;cycle end (*8)
  65. pic_cycspd    equ    16        ;cycle speed (*8)
  66. pic_cycadd    equ    17        ;cycle add (*8)
  67. pic_widmod    equ    46        ;animation-width modulo
  68. pic_future    equ    50        ;free future space
  69. pic_palnum    equ    62        ;aantal kleuren
  70. pic_pal        equ    64        ;palette start
  71. pic_palsiz    equ    256*4        ;vaste palette size (longwords)
  72. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  73.         endc
  74.         
  75. var_len        equ    $300        ;lengte vartabel
  76.  
  77. var__GfxBase    equ    $000        ;graphics lib
  78. var_pic1    equ    $004        ;current picture
  79. var_anispd1    equ    $008        ;animspeed
  80. var_anitel1    equ    $00c        ;animcount
  81. var_cprbck    equ    $010        ;copperback
  82. var_bck        equ    $014        ;background
  83. var_pic2    equ    $018        ;current picture
  84. var_ntsc    equ    $01c        ;ntsc/pal frequence
  85. var_lnd        equ    $020        ;landscape
  86. var_anilop1    equ    $024
  87. var_rottrg    equ    $028        ;effect trigger
  88. var_txt1    equ    $040        ;text
  89. var_txt16    equ    15*4+var_txt1
  90. var_vec1    equ    $080        ;vectors
  91. var_vec16    equ    15*4+var_vec1
  92. var_fon1    equ    $0c0        ;fonts
  93. var_fon16    equ    15*4+var_fon1
  94. var_cols1    equ    $100        ;colorsets
  95. var_cols16    equ    15*4+var_cols1
  96. var_obj1    equ    $180        ;objects
  97. var_obj16    equ    15*4+var_obj1
  98.  
  99.     ifd    rout
  100.     ;videotracker routine-test
  101.  
  102.     incdir    "w:include/"
  103.     include    "exec/types.i"
  104.     include    "graphics/gfxbase.i"
  105.     include    "lvo/graphics_lib.i"
  106.     incdir    'videotracker:effect/'
  107.  
  108.     SECTION    1,CODE
  109. tus
  110. ;    move.l    #rotpt1,curpic1        ;picture !!!
  111. ;    move.l    #rotpt1,curpal1        ;picture !!!
  112.     bsr    paltabres
  113.     
  114.     move.l    ($4).w,a6
  115.     sub.l    a1,a1
  116.     jsr    -$126(a6)        ;findtask
  117.     move.l    d0,curtsk
  118.     move.l    d0,a0
  119.     move.l    $b8(a0),tskpri
  120.  
  121.     lea    dosnam,a1        ;doslib openen
  122.     moveq.l    #0,d0
  123.     move.l    (4).w,a6
  124.     jsr    -408(a6)        ;openlib
  125.     move.l    d0,doslib
  126.  
  127.     bsr.s    label5            ;videotracker opstarten
  128.     
  129.     move.l    curtsk,a0
  130.     move.l    tskpri,$b8(a0)
  131.     move.l    ($4).w,a6
  132.     jsr    -$84(a6)        ;forbid
  133.  
  134.     move.l    doslib,a1
  135.     move.l    (4).w,a6
  136.     jsr    -414(a6)        ;closelib
  137.  
  138.     moveq.l    #0,d0
  139.     rts
  140.     
  141. label5
  142.     move.l    (4).w,a6        ;workbench gedoe
  143.  
  144.     move.b    530(a6),ntscmode    ;50/60 hertz halen
  145.  
  146.     ifd    ntsctest
  147.     move.b    #60,ntscmode        ;60 hertz (ntsc)
  148.     endc
  149.  
  150.     cmp.b    #50,ntscmode        ;ntsc ?
  151.     beq.s    str.ntsc
  152.     move.l    #vew_hgt-56,hogscr    ;set NTSC screen hight
  153. str.ntsc
  154.  
  155.     lea    cprjmp,a2        ;copjmp zetten !
  156.     move.l    #cprbck-8,d0
  157.     move.w    d0,6(a2)
  158.     swap    d0
  159.     move.w    d0,2(a2)
  160.  
  161.     lea    cprbck-8,a2        ;copstr zetten !
  162.     move.l    #cpr,d0
  163.     move.w    d0,6(a2)
  164.     swap    d0
  165.     move.w    d0,2(a2)
  166.  
  167.     bsr    cprsprrem        ;sprites legen
  168.  
  169.     lea    gfxnam,a1        ;graphics lib openen
  170.     move.l    (4).w,a6
  171.     jsr    -408(a6)        ;openlib
  172.     move.l    d0,a6
  173.     move.l    d0,gfxlib
  174.     move.l    38(a6),oldcprlist
  175.  
  176.     bset    #1,$bfe001
  177.     bsr    copbuf            ;copper vullen
  178.  
  179.     bsr    sysoff
  180.  
  181. gadrun
  182.     btst    #6,($bfe001).l
  183.     bne    gadrun
  184.  
  185. scrend
  186. scrend.play
  187.     bsr    syson
  188.  
  189.     move.l    gfxlib,a1
  190.     move.l    (4).w,a6
  191.     jsr    -414(a6)        ;closelib
  192.  
  193. scrend.qb
  194.     moveq.l    #0,d0    
  195.     rts
  196.     
  197.     ;vertical blank interrupt, no blits.
  198.     ;handles counters,interlace,sprite
  199.     ;level 3
  200.  
  201. intvb
  202.     bra.s    intvb.cnt
  203.     dc.l    'VIDU'
  204.     dc.l    'LOOP'
  205. intvb.cnt
  206.     movem.l    d0-d7/a0-a6,-(sp)
  207.     lea    ($dff000).l,a6
  208.  
  209.     move.w    $01e(a6),d0
  210.     btst    #5,d0            ;vblank ?
  211.     bne.s    intvb.vb
  212.  
  213.     bra.s    intcop.end
  214.  
  215. intvb.vb
  216.     bsr    grap
  217.     bsr    palctr            ;palette zetten
  218.     bsr.s    copbuf            ;copper vullen
  219.     
  220. intvb.end
  221.     move.w    #$0020,$09c(a6)    ;vb bit wissen
  222.     movem.l    (sp)+,d0-d7/a0-a6    ;multitask uit, shit !
  223.     rte
  224.  
  225. intcop.end
  226.     movem.l    (sp)+,d0-d7/a0-a6
  227.     move.l    intvbold,-(sp)
  228.     rts
  229.  
  230.     ;transmission buffer empty routine, BLIT !
  231.     ;handles routines,animations
  232.     
  233. inttbe                    ;tbe interrupt
  234.     movem.l    d0-d7/a0-a6,-(sp)
  235.     lea    ($dff000).l,a6
  236.  
  237.     move.w    $01e(a6),d0
  238.     btst    #0,d0            ;no tbe ?
  239.     beq.s    intdskblk
  240.  
  241.  
  242.     btst    #6,($bfe001).l        ;muis ingedrukt ?
  243.     beq.s    inttbe.cop
  244.     btst    #2,($dff016).l
  245.     beq.s    inttbe.cop
  246.  
  247.     ifd    debug
  248.     move.w    #$700,$dff180
  249.     endc
  250.     
  251.     bsr    rotply            ;routineplayer BLIT !
  252.     bsr.s    copbuf            ;copper vullen
  253.  
  254.     ifd    debug
  255.     move.w    #$070,$dff180
  256.     endc
  257.     
  258. inttbe.cop
  259.  
  260. inttbe.end
  261.     move.w    #$0001,$09c(a6)
  262.     movem.l    (sp)+,d0-d7/a0-a6
  263.     rte
  264.  
  265. intdskblk
  266.     move.w    #$0001,$09c(a6)        ;be sure for no tbe handling
  267.     movem.l    (sp)+,d0-d7/a0-a6
  268.     move.l    inttbeold,-(sp)
  269.     rts
  270.  
  271.  
  272.     ;moves the copperbuffer to the copperlist
  273.     ;sort of double buffering
  274.     
  275. copbuf
  276.     movem.l    d0-d7/a0-a6,-(sp)
  277.  
  278.     lea    ($dff000).l,a6
  279.  
  280. copbuf.novb                ;copperchange overslaan
  281.     moveq.l    #0,d0
  282.     move.b    $005(a6),d0
  283.     lsl.w    #8,d0
  284.     moveq.l    #0,d1
  285.     move.b    $006(a6),d1
  286.     add.w    d1,d0
  287.  
  288.     cmp.w    #$4,d0            ;lower limit, all stations 100%
  289.     blt    copbuf.novb
  290.  
  291.     cmp.b    #50,ntscmode
  292.     beq.s    copbuf.pal
  293.     cmp.w    #$133-72-8,d0        ;ntsc grens
  294.     bge    copbuf.novb
  295.     bra.s    copbuf.cont
  296. copbuf.pal
  297.     cmp.w    #$133-8,d0        ;pal grens
  298.     bge    copbuf.novb
  299. copbuf.cont
  300.  
  301.     lea    gra.s,a0        ;buffer copieren
  302.     lea    cprbuf,a1
  303. copbuf_aga                ;AGA stuff :)
  304.     move.l    #(gra.ql)/4-1,d0
  305. copbuf.a
  306.     move.w    2(a0),2(a1)
  307.     add.l    #4,a0
  308.     add.l    #4,a1
  309.     dbra    d0,copbuf.a
  310.  
  311. copbuf.end
  312.     movem.l    (sp)+,d0-d7/a0-a6
  313.     rts
  314.  
  315.     ;goes back to the workbench
  316.     
  317. syson
  318.     movem.l    d0-d7/a0-a6,-(sp)
  319.  
  320.     move.w    #$0001,$dff09a        ;tbeint uit
  321.     move.l    intvbold,($6c).w
  322.     move.l    inttbeold,($64).w
  323.  
  324.     move.l    4,a6
  325.     jsr    -138(a6)        ;permit
  326.  
  327.     move.l    gfxlib,a6
  328.     jsr    -462(a6)        ;disownblitter
  329.  
  330.     move.l    wbview,a1
  331.     move.l    gfxlib,a6
  332.     jsr    _LVOLoadView(a6)     ; Fix view
  333.     jsr    _LVOWaitTOF(a6)
  334.     jsr    _LVOWaitTOF(a6)         ; wait for LoadView()
  335.  
  336. syson.ras
  337.     cmp.b    #$c0,$dff006        ;prevent copperjump
  338.     bne    syson.ras
  339.  
  340.     move.l    gfxlib,a6
  341.     move.l    gb_copinit(a6),$dff080     ; Kick it into life
  342.  
  343.     movem.l    (sp)+,d0-d7/a0-a6
  344.     rts
  345.     
  346.     ;goes back to the gadgetscreen
  347.     
  348. sysoff
  349.     movem.l    d0-d7/a0-a6,-(sp)
  350.      
  351.     move.l    gfxlib,a6
  352.     move.l    gb_ActiView(a6),wbview    ;current view
  353.     sub.l    a1,a1            ; clear a1
  354.     jsr     _LVOLoadView(a6)     ; Flush View to nothing
  355.     jsr    _LVOWaitTOF(a6)     ; Wait once
  356.     jsr    _LVOWaitTOF(a6)     ; Wait again.
  357.  
  358.     move.l    gfxlib,a6
  359.     jsr    -456(a6)        ;ownblitter
  360.  
  361.     move.l    4,a6
  362.     jsr    -132(a6)        ;forbid
  363.         
  364.     move.l    ($6c).w,intvbold
  365.     move.l    #intvb,($6c).w
  366.     move.l    ($64).w,inttbeold
  367.     move.l    #inttbe,($64).w
  368.     move.w    #$8001,$dff09a        ;tbeint aan
  369.     bsr    gracpr            ;reset copper
  370.     bsr    copbuf            ;copy copper
  371.     move.l    #cpr,$dff080
  372.  
  373.     movem.l    (sp)+,d0-d7/a0-a6
  374.     rts
  375.     
  376. cprsprrem
  377.     movem.l    d0-d7/a0-a6,-(sp)
  378.     lea    cprspr,a0
  379.     move.l    #sprdat,d0
  380.     move.w    #7,d1
  381. cprsprrem.a
  382.     move.w    d0,3*2(a0)
  383.     swap    d0
  384.     move.w    d0,1*2(a0)
  385.     swap    d0
  386.     add.l    #8,a0
  387.     dbra    d1,cprsprrem.a
  388.     movem.l    (sp)+,d0-d7/a0-a6
  389.     rts
  390.  
  391. varset                    ;variablen neerzetten
  392.     movem.l    d0-d7/a0-a6,-(sp)
  393.     move.l    #var,a0
  394.  
  395.     move.l    #cprbck,var_cprbck(a0)
  396.     move.l    gfxlib,var__GfxBase(a0)
  397.     move.b    ntscmode,var_ntsc(a0)
  398.  
  399.     move.l    curpic1,var_pic1(a0)    ;variabel
  400.     move.l    curpic2,var_pic2(a0)    ;variabel
  401.     move.w    anispd1,var_anispd1(a0)
  402.     move.w    anitel1,var_anitel1(a0)
  403.     move.b    anilop1,var_anilop1(a0)
  404.     move.l    #rottrg,var_rottrg(a0)
  405.     movem.l    (sp)+,d0-d7/a0-a6
  406.     rts
  407.     
  408.     ;this routine handles all videotracker-routines
  409.  
  410. rotply    
  411.     movem.l    d0-d7/a0-a6,-(sp)
  412.  
  413.     moveq.l    #0,d0
  414.  
  415.     lea    currot1,a2        ;routine 1
  416.     move.w    rotinf1,d0        ;routine info
  417.     bsr.s    rotplyr
  418.  
  419. rotply.end
  420.     movem.l    (sp)+,d0-d7/a0-a6
  421.     rts
  422.  
  423.     ;this routine handles 1 routine, BLIT !
  424.     
  425. rotplyr
  426.     movem.l    d0-d7/a1-a6,-(sp)
  427.  
  428.     move.l    #rot,(a2)        ;routinestart address !!!
  429.  
  430. ;    move.b    #50,ntscmode        ;ntsc/pal hz
  431.     clr.l    curpic2            ;background picture
  432.     move.w    #1,anispd1        ;animationspeed
  433.     clr.w    anitel1            ;animation position
  434.  
  435.     lea    var,a0            ;communication-table
  436.     move.l    #rotsrc,var_bck(a0)    ;colorset !!!
  437. ;    move.l    #rotst1,var_cols1+4(a0)    ;colorset !!!
  438. ;    move.l    #rotpt1,curpic1        ;picture !!!
  439. ;    move.l    #rotpt1,curpal1        ;picture !!!
  440. ;    move.b    #0,anilop1        ;animloop off/on !!!
  441. ;    move.w    #32,anispd1        ;animdelay !!!
  442.     move.l    #routinemode,d0        ;routinemode !!!
  443.  
  444.     sub.l    a0,a0            ;picture info legen
  445.  
  446.     tst.l    (a2)            ;is er een routine ?
  447.     beq    rotplyr.end        ;interlace handling
  448.  
  449.     move.l    intdel,d2        ;delay
  450.     move.l    inttel,d1        ;teller
  451.     cmp.w    d2,d1
  452.     blt    rotplyr.end
  453.     clr.l    inttel
  454.                 
  455.     bsr    varset            ;variabelen updaten
  456.  
  457.     move.l    (a2),a1            ;routine halen
  458.     move.l    #var,a0            ;variablen tabel
  459.  
  460.     movem.l    d3-d7/a1-a6,-(sp)
  461.     moveq.l    #0,d1            ;vars wissen
  462.     moveq.l    #0,d2
  463.     moveq.l    #0,d3
  464.     moveq.l    #0,d4
  465.     moveq.l    #0,d5
  466.     moveq.l    #0,d6
  467.     moveq.l    #0,d7
  468.     sub.l    a2,a2
  469.     sub.l    a3,a3
  470.     sub.l    a4,a4
  471.     sub.l    a5,a5
  472.  
  473.     move.l    #rotc,a2
  474.     
  475.     jsr    4(a1)            ;routine afwerken
  476.     movem.l    (sp)+,d3-d7/a1-a6
  477.  
  478.     ;Routine:
  479.     ;
  480.     ;Input:
  481.     ;a0=variabelentabel
  482.     ;d0=routinemode
  483.     ;
  484.     ;Output:
  485.     ;a0=picture
  486.     ;d1=copperlist
  487.     ;d2=interruptdelay        (NOT used till now)
  488.     
  489.     move.w    #$0020,$dff09a        ;vb off !
  490.  
  491.     move.l    d2,intdel        ;delay
  492.  
  493.     lea    cprjmp,a3
  494.     move.l    #cprbck-8,d0
  495.  
  496.     cmp.l    (a2),a1            ;routine ondertussen gewipt ?
  497.     bne.s    rotplyr.nocop
  498.     tst.l    d1            ;copperlist ?
  499.     beq.s    rotplyr.nocop
  500.     move.l    d1,d0
  501. rotplyr.nocop
  502.     move.w    d0,6(a3)
  503.     swap    d0
  504.     move.w    d0,2(a3)
  505.  
  506.     cmp.l    #0,a0            ;picture ?
  507. ;    beq.s    rotplyr.endvb
  508.     beq.s    rotplyr.set
  509.  
  510.     move.l    a0,curpal1        ;current palette
  511.  
  512. ;    move.l    #rotpt1,a0        ;picture !!!
  513.  
  514.     move.l    (a0),a1
  515.     cmp.l    #'PALE',(a1)        ;palette ?
  516.     beq    rotplyr.set
  517.  
  518.     move.l    a0,curpic1        ;current picture (cycle)
  519.     tst.b    rotdpl            ;plane is geleverd
  520.     beq.s    rotplyr.set
  521.     clr.l    cycdel1            ;cycle info wissen
  522.     clr.l    4+cycdel1
  523.     clr.l    curfrm1            ;curfrm1, altijd planes zetten
  524. rotplyr.set
  525.     clr.b    rotdpl
  526.     clr.b    dplctr
  527.     bsr.s    grap
  528.     bsr    grac            ;colorset
  529. rotplyr.endvb
  530.     move.w    #$8020,$dff09a
  531. rotplyr.end
  532.     movem.l    (sp)+,d0-d7/a1-a6
  533.     rts
  534.  
  535.     ;removes possible routine-coppers
  536.     
  537. gracpr
  538.     movem.l    d0-d7/a0-a6,-(sp)
  539.     lea    cprjmp,a3
  540.     move.l    #cprbck-8,d0        ;copperlist resetten
  541.     move.w    d0,6(a3)
  542.     swap    d0
  543.     move.w    d0,2(a3)
  544.     movem.l    (sp)+,d0-d7/a0-a6
  545.     rts
  546.  
  547. grap                    ;d7=anim
  548.     movem.l    d0-d7/a0-a6,-(sp)
  549.  
  550.     clr.l    d7
  551.  
  552.     tst.l    curpic1            ;current picture ?
  553.     beq    grap.end
  554.  
  555.     move.l    curpic1,a2        ;normal pic halen
  556.  
  557.     lea    gracprscr,a1        ;window neerzetten
  558.     move.l    hogscr,d1
  559.  
  560.     move.w    pic_hgt(a2),d3        ;pic hoogte
  561.     move.w    pic_vew(a2),d5
  562.     btst    #2,d5            ;interlace ?
  563.     beq.s    grap.nohi4
  564.     lsr.w    #1,d3            ;/2
  565. grap.nohi4
  566.     cmp.w    d3,d1
  567.     bge.s    grap.hog
  568.     move.w    d1,d3
  569. grap.hog
  570.     sub.w    d3,d1
  571.     lsr.w    #1,d1
  572.     add.w    #win_str,d1
  573.     move.w    d1,d2
  574.     add.w    d3,d2
  575.  
  576.     move.b    d1,2(a1)        ;y start
  577.     move.b    d2,6(a1)        ;y end
  578.  
  579.     move.w    pic_wid(a2),d4        ;pic breedte in bytes
  580.     lsl.l    #3,d4
  581.  
  582.     move.l    #vew_wid*8,d0
  583.     move.l    #0,d1
  584.     move.l    #$61,d6
  585.  
  586.     cmp.w    #40,pic_wid(a2)        ;overscan ?
  587.     ble.s    grap.noov1
  588.     move.l    #$41,d6
  589. grap.noov1
  590.  
  591.     move.w    pic_vew(a2),d5
  592.     btst    #15,d5            ;hires ?
  593.     beq.s    grap.nohi2
  594.  
  595.     move.l    #(vew_wid)*8*2,d0
  596.     move.l    #1,d1
  597.     move.l    #$61,d6
  598.  
  599.     cmp.w    #80,pic_wid(a2)        ;overscan ?
  600.     ble.s    grap.nohi2
  601.     move.l    #(vew_wid)*8*2,d0
  602.     move.l    #$51,d6
  603.  
  604.     bra.s    grap.noshi2
  605. grap.nohi2    
  606.     btst    #6,d5            ;super hires ?
  607.     beq.s    grap.noshi2
  608.  
  609.     move.l    #(vew_wid)*8*4,d0
  610.     move.l    #2,d1
  611.     move.l    #$61,d6
  612.  
  613.     cmp.w    #80*2,pic_wid(a2)    ;overscan ?
  614.     ble.s    grap.noshi2
  615.     move.l    #(vew_wid)*8*4,d0
  616.     move.l    #$51,d6
  617.  
  618. grap.noshi2    
  619.  
  620.     clr.w    d5
  621.     cmp.w    d0,d4            ;breeder dan scherm ?
  622.     ble.s    grap.c
  623.     move.w    d4,d5
  624.     move.w    d0,d4
  625.     sub.w    d0,d5            ;modulo
  626.     lsr.w    #3,d5            ;/8
  627. grap.c
  628.     lsr.w    d1,d0
  629.     lsr.w    d1,d4
  630.  
  631.     move.w    d0,d2
  632.     sub.w    d4,d2
  633.     lsr.w    #1,d2            ;/2
  634.  
  635.     add.w    d6,d2
  636.     move.b    d2,3(a1)        ;x start
  637.     move.w    d2,d3            ;d3 bewaren !
  638.  
  639.     add.w    d4,d2            ;d4 bewaren !
  640.     move.b    d2,7(a1)        ;x end
  641.     
  642.     move.w    pic_vew(a2),d6
  643.     btst    #15,d6            ;hires ?
  644.     beq.s    grap.nohi5    
  645.     add.l    d4,d4            ;*2
  646.     bra.s    grap.noshi5
  647. grap.nohi5
  648.     btst    #6,d6            ;super hires ?
  649.     beq.s    grap.noshi5    
  650.     add.l    d4,d4            ;*4
  651.     add.l    d4,d4
  652. grap.noshi5
  653.  
  654.     move.l    d7,-(sp)
  655.     move.w    pic_vew(a2),d6
  656.     move.l    #17,d0
  657.     move.l    #4,d1            ;ecs 1
  658.     move.l    #3,d7
  659.  
  660.     btst    #15,d6            ;hires ?
  661.     beq.s    grap.nohi3    
  662.     move.l    #17,d0            ;ecs 9
  663.     move.l    #4,d1            ;ecs 2
  664.     move.l    #2,d7
  665.     bra.s    grap.noshi3
  666. grap.nohi3
  667.     btst    #6,d6            ;super hires ?
  668.     beq.s    grap.noshi3    
  669.     move.l    #17,d0            ;ecs 9
  670.     move.l    #4,d1            ;ecs 2
  671.     move.l    #1,d7
  672. grap.noshi3
  673.     sub.w    d0,d3
  674.     lsr.w    #1,d3
  675.     move.w    d3,10(a1)        ;ddfstrt
  676.     
  677.     move.w    d4,d2            ;pic breedte in pixels
  678.     lsr.w    #4,d2            ;/16
  679.     sub.w    d1,d2            ;-1
  680.  
  681.     lsl.w    d7,d2            ;*8
  682.     add.w    d2,d3
  683.     move.w    d3,14(a1)        ;ddfstop
  684.     move.l    (sp)+,d7
  685.     
  686.     lea    pic_raw(a2),a0
  687.  
  688.     moveq.l    #0,d2
  689.     move.w    pic_dpt(a2),d2
  690.     sub.l    #1,d2
  691.     muls    pic_wid(a2),d2
  692.     add.w    d2,d5
  693.  
  694.     move.w    pic_vew(a2),d2        ;viewmode add
  695.     btst    #2,d2
  696.     beq.s    grap.nolace4
  697.  
  698.     moveq.l    #0,d2
  699.     move.w    pic_dpt(a2),d2
  700.     muls    pic_wid(a2),d2
  701.     add.w    d2,d5            ;interlace gedoe
  702. grap.nolace4
  703.  
  704.     lea    gracprbpl,a4        ;iffpln neerzetten
  705.     lea    gracprpln,a0        ;iffpln neerzetten
  706.     moveq.l    #0,d2
  707.     move.w    pic_dpt(a2),d2        ;plnnummer 1 halen
  708.     move.l    #8,d6            ;copper step !
  709.  
  710.     tst.l    curpic2            ;2de picture ?
  711.     bne.s    grap.pic2
  712. grap.nopic2
  713.     move.w    d5,34(a1)        ;modulo oneven zetten
  714.     bra    grap.nodpl
  715. grap.pic2
  716.     move.l    curpic2,a3        ;oneven plane
  717.     move.l    curpic2+4,a6        ;oneven plane
  718.     move.l    currot2,a5        ;oneven plane
  719.     clr.l    curpic2            ;mischien niet goed
  720.     clr.l    curpic2+4        ;mischien niet goed
  721.     clr.l    curpal2            ;mischien niet goed
  722.     clr.l    currot2            ;mischien niet goed
  723.  
  724.     cmp.l    curpic1,a3        ;picture hetzelfde ?
  725.     beq.s    grap.nopic2
  726.     
  727.     cmp.l    #0,currot1        ;routine ?    
  728.     beq.s    grap.norot
  729.     cmp.l    currot1,a5        ;routine hetzelfde ?
  730.     beq.s    grap.nopic2
  731. grap.norot
  732.     cmp.b    #4,d2            ;> 16 kleuren ? (AGA)
  733.     bgt    grap.nopic2
  734.  
  735.     move.w    pic_dpt(a3),d3        ;plnnummer 2 halen
  736.     cmp.b    d2,d3            ;gelijke plnummers ?
  737.     bne.s    grap.nopic2
  738.     move.w    pic_vew(a2),d1
  739.     cmp.w    pic_vew(a3),d1        ;view gelijk ?
  740.     bne.s    grap.nopic2
  741.  
  742.     move.w    pic_vew(a2),d1        ;groter dan view test
  743.     btst    #6,d1            ;super hires ?
  744.     beq.s    grap.nohi2a
  745.     move.l    #vew_wid*4,d1
  746.     bra.s    grap.nohi2b
  747. grap.nohi2a
  748.     btst    #15,d1            ;hires ?
  749.     beq.s    grap.noshi2a
  750.     move.l    #vew_wid*2,d1
  751.     bra.s    grap.nohi2b
  752. grap.noshi2a
  753.     move.l    #vew_wid,d1
  754. grap.nohi2b
  755.     cmp.w    pic_wid(a2),d1        ;breder dan view ?
  756.     bgt.s    grap.small
  757.     cmp.w    pic_wid(a3),d1        ;breder dan view ?
  758.     bgt.s    grap.small
  759.  
  760.     move.w    pic_vew(a2),d1
  761.     btst    #2,d1
  762.     beq.s    grap.nolace8a
  763.     move.l    hogscr,d1
  764.     add.l    d1,d1
  765.     bra.s    grap.nolace8b
  766. grap.nolace8a
  767.     move.l    hogscr,d1
  768. grap.nolace8b
  769.     cmp.w    pic_hgt(a2),d1        ;hoger dan view ?
  770.     bgt.s    grap.small
  771.     cmp.w    pic_hgt(a3),d1        ;hoger dan view ?
  772.     bgt.s    grap.small
  773.     bra.s    grap.big
  774.  
  775. grap.small
  776.     move.w    pic_hgt(a2),d1        ;wid+hgt<vew
  777.     cmp.w    pic_hgt(a3),d1        ;hoogte gelijk ?
  778.     bne    grap.nopic2
  779.     move.w    pic_wid(a2),d1
  780.     cmp.w    pic_wid(a3),d1        ;breedte gelijk ?
  781.     bne    grap.nopic2
  782.  
  783. grap.big
  784.     move.l    a3,curpic2        ;toch wel goed !
  785.     move.l    a6,curpic2+4
  786.     move.l    a3,curpal2
  787.     move.l    a5,currot2
  788.  
  789.     tst.b    dplctr            ;dual playfield al gezet ?
  790.     beq    grap.nocop
  791.  
  792.     move.w    30(a1),34(a1)        ;modulo copieren
  793.  
  794.     move.w    2(a4),d1        ;bplcon0
  795.     btst    #10,d1            ;al dual playfield ?
  796.     beq.s    grap.ta
  797.  
  798.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  799.     move.w    6(a0),14(a0)
  800.  
  801.     move.w    18(a0),26(a0)        ;plane 2>3 copieren
  802.     move.w    22(a0),30(a0)
  803.  
  804.     move.w    34(a0),42(a0)        ;plane 4>5 copieren
  805.     move.w    38(a0),46(a0)
  806.  
  807.     move.w    50(a0),58(a0)        ;plane 6>7 copieren
  808.     move.w    54(a0),62(a0)
  809.  
  810.     bra.s    grap.tb
  811. grap.ta
  812.     move.w    24(a0),58(a0)        ;plane 3>7 copieren
  813.     move.w    28(a0),62(a0)
  814.  
  815.     move.w    18(a0),42(a0)        ;plane 2>5 copieren
  816.     move.w    22(a0),46(a0)
  817.  
  818.     move.w    10(a0),26(a0)        ;plane 1>3 copieren
  819.     move.w    14(a0),30(a0)
  820.  
  821.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  822.     move.w    6(a0),14(a0)
  823.  
  824. grap.tb
  825.     move.l    #palette,a3        ;palette copieren
  826.  
  827.     move.w    #16-1,d1
  828. grap.pal
  829.     move.l    (a3)+,60(a3)
  830.     dbra    d1,grap.pal
  831.  
  832. grap.nocop
  833.     add.w    d3,d2            ;aantal bitplanes
  834.     cmp.w    #8,d2            ;8 bitplanes ?
  835.     blt    grap.no8planes2
  836.     move.w    #%10000,d2        ;only bit 4
  837.     bra    grap.8planes2
  838. grap.no8planes2
  839.     lsl.w    #8,d2
  840.     lsl.w    #4,d2
  841. grap.8planes2
  842.     or.w    #$400,d2        ;dual playfield aan
  843.     move.w    d2,2(a4)        ;bplcon0
  844.  
  845.     movem.l    d0-d7/a0-a6,-(sp)
  846.  
  847.     move.l    curpic,a2        ;animpic ?
  848.     move.l    curfrm,d7
  849.     cmp.l    #0,a2
  850.     bne.s    grap.noanipic
  851.  
  852.     move.l    curpic2,a2        ;normal pic ?
  853.     move.l    curfrm2,d7
  854.     cmp.l    #0,a2
  855.     beq.s    grap.nodplpic
  856.  
  857. grap.noanipic
  858.     add.l    d6,a0
  859.     add.w    d6,d6
  860.     bsr.s    grappln            ;a2,d6,d7,d0
  861. grap.nodplpic
  862.     movem.l    (sp)+,d0-d7/a0-a6
  863.     add.w    d6,d6
  864.     bra.s    grap.nodpla
  865.  
  866.  
  867. grap.nodpl                ;geen dual playfield
  868.     cmp.w    #8,d2            ;8 bitplanes ?
  869.     blt    grap.no8planes
  870.     move.w    #%10000,d2        ;only bit 4
  871.     bra    grap.8planes
  872. grap.no8planes
  873.     lsl.w    #8,d2
  874.     lsl.w    #4,d2
  875. grap.8planes
  876.     move.w    d2,2(a4)        ;bplcon0
  877.  
  878. grap.nodpla
  879.     move.w    d5,30(a1)        ;modulo even
  880.  
  881.     moveq.l    #0,d3
  882.     add.w    pic_vew(a2),d3        ;viewmode add
  883.     moveq.l    #0,d2
  884.     move.w    2(a4),d2
  885.     or.l    d3,d2
  886.  
  887.     ifd    gui
  888.     tst.b    genlck
  889.     bne    grap.genset
  890.     endc
  891.  
  892.     or.l    #$100,d2        ;genlock off ($302)
  893.  
  894.     ifd    gui
  895.     bra    grap.gencont
  896. grap.genset
  897.     or.l    #$102,d2        ;genlock on ($302)
  898. grap.gencont
  899.     endc
  900.     
  901.     move.w    d2,2(a4)
  902.     
  903.     bsr.s    grappln            ;a2,d6,d7,d0
  904.  
  905. grap.end
  906.     
  907.     movem.l    (sp)+,d0-d7/a0-a6
  908.     rts
  909.         
  910.  
  911.     ;sets on of the 2 possible pictures to the copper
  912.     ;handles interlace
  913.  
  914.     ;d7=framenummer
  915.     ;d6=copperliststap
  916.     ;d0=raw planes positie
  917.     ;a2=current picture
  918. grappln                    ;planes invullen 
  919.     movem.l    d0-d7/a0-a6,-(sp)
  920.  
  921.     lea    pic_raw(a2),a1
  922.     move.l    a1,d0            ;raw planes
  923.     
  924.     moveq.l    #0,d2            ;x*y
  925.     move.w    pic_wid(a2),d2
  926.     lsr.l    #1,d2            ;/2
  927.     moveq.l    #0,d3
  928.     move.w    pic_hgt(a2),d3
  929.     muls    d3,d2
  930.     
  931.     move.l    d2,d4
  932.     add.l    d2,d2
  933.  
  934.     move.w    pic_dpt(a2),d3
  935.     muls    d3,d4            ;hele picture size
  936.     muls    d7,d4            ;frame*size d7 !
  937.  
  938.     add.l    d4,d4
  939.  
  940.     add.l    d4,d0
  941.  
  942.     move.l    #vew_wid,d5        ;max x view
  943.     move.l    hogscr,d4        ;max y view
  944.     move.w    pic_vew(a2),d1        ;viewmode add
  945.     btst    #2,d1
  946.     beq.s    grappln.nolace
  947.     add.l    d4,d4            ;max y view
  948. grappln.nolace
  949.     btst    #15,d1            ;hires ?
  950.     beq.s    grappln.nohi
  951.     move.l    #vew_wid*2,d5        ;max x view
  952.     bra.s    grappln.noshi
  953. grappln.nohi
  954.     btst    #6,d1            ;super hires ?
  955.     beq.s    grappln.noshi
  956.     move.l    #vew_wid*4,d5        ;max x view
  957. grappln.noshi
  958.  
  959.     moveq.l    #0,d3            ;scherm centreren
  960.     move.w    pic_wid(a2),d3        ;pic breedte in bytes
  961.     cmp.w    d5,d3            ;breder dan scherm ?
  962.     ble.s    grappln.qa
  963.     sub.w    d5,d3            ;-scherm breedte
  964.     lsr.w    #2,d3            ;/4
  965.  
  966.     add.l    d3,d3
  967.  
  968.     add.l    d3,d0
  969. grappln.qa
  970.     move.w    pic_hgt(a2),d3        ;pic hoogte in bytes
  971.     cmp.w    d4,d3            ;hoger dan scherm ?
  972.     ble.s    grappln.qb
  973.     sub.w    d4,d3            ;-scherm breedte
  974.     lsr.w    #1,d3            ;/2
  975.     moveq.l    #0,d5
  976.     move.w    pic_wid(a2),d5        ;pic breedte in bytes
  977.     muls    pic_dpt(a2),d5
  978.     muls    d5,d3
  979.     add.l    d3,d0
  980. grappln.qb
  981.     moveq.l    #0,d2
  982.     move.w    pic_wid(a2),d2
  983.  
  984.     move.w    pic_vew(a2),d5        ;interlace flipping ?
  985.     btst    #2,d5
  986.     beq.s    grappln.nolac7b
  987.  
  988.     move.w    $04(a6),d5        ;even/oneven ?
  989.     btst    #15,d5
  990.     beq.s    grappln.nolac7b
  991.     
  992.     moveq.l    #0,d3
  993.     move.w    pic_wid(a2),d3
  994.     muls    pic_dpt(a2),d3
  995.     add.l    d3,d0
  996. grappln.nolac7b
  997.  
  998.     move.w    pic_dpt(a2),d1        ;plnnummer 1 halen
  999.     tst.w    d1            ;0 planes ?
  1000.     beq    grappln.end
  1001.     sub.w    #1,d1
  1002. grappln.a
  1003.     move.w    d0,3*2(a0)
  1004.     swap    d0
  1005.     move.w    d0,1*2(a0)
  1006.     swap    d0
  1007.     add.l    d6,a0            ;d6=copper step !
  1008.     add.l    d2,d0
  1009.     dbra    d1,grappln.a
  1010.  
  1011.     cmp.w    #8,pic_dpt(a2)        ;8 planes ?
  1012.     bne    grappln.noham8
  1013.     btst    #3,pic_vew(a2)        ;ham ?
  1014.     beq    grappln.noham8
  1015.  
  1016.     move.w    -14(a0),d0        ;get 6
  1017.     move.w    -10(a0),d1
  1018.     move.w    -6(a0),d2        ;get 7
  1019.     move.w    -2(a0),d3
  1020.     move.w    -18(a0),-2(a0)        ;5>7
  1021.     move.w    -22(a0),-6(a0)        ;5>7
  1022.     move.w    -26(a0),-10(a0)        ;4>6
  1023.     move.w    -30(a0),-14(a0)        ;4>6
  1024.     move.w    -34(a0),-18(a0)        ;3>5
  1025.     move.w    -38(a0),-22(a0)        ;3>5
  1026.     move.w    -42(a0),-26(a0)        ;2>4
  1027.     move.w    -46(a0),-30(a0)        ;2>4
  1028.     move.w    -50(a0),-34(a0)        ;1>3
  1029.     move.w    -54(a0),-38(a0)        ;1>3
  1030.     move.w    -58(a0),-42(a0)        ;0>2
  1031.     move.w    -62(a0),-46(a0)        ;0>2
  1032.     move.w    d0,-62(a0)        ;6>0
  1033.     move.w    d1,-58(a0)        ;6>0
  1034.     move.w    d2,-54(a0)        ;7>1
  1035.     move.w    d3,-50(a0)        ;7>1
  1036. grappln.noham8
  1037.  
  1038. grappln.end
  1039.     movem.l    (sp)+,d0-d7/a0-a6
  1040.     rts
  1041.  
  1042.     ;sets palettes to palette-buffer
  1043.     
  1044. grac
  1045.     movem.l    d0-d7/a0-a6,-(sp)
  1046.  
  1047.     lea    curpal1,a3        ;palette 1
  1048.     move.l    #palette,a1
  1049.     bsr.s    gracfrm
  1050.  
  1051.     lea    curpal2,a3        ;palette 2 (dpl)
  1052.     move.l    #16*4+palette,a1
  1053.     bsr.s    gracfrm
  1054.     
  1055.     bsr    palctr            ;palette-buffer to copper
  1056. grac.end
  1057.     movem.l    (sp)+,d0-d7/a0-a6
  1058.     rts
  1059.         
  1060.     ;moves palette from picture to palette-buffer
  1061.  
  1062. gracfrm
  1063.     movem.l    d0-d7/a0-a6,-(sp)
  1064.     tst.l    (a3)            ;palette aanwezig ?
  1065.     beq.s    gracfrm.end
  1066.  
  1067.     move.l    (a3),a2            ;current palette
  1068.     
  1069.     cmp.l    #'PALE',(a2)        ;palette ?
  1070.     bne.s    gracfrm.pict
  1071.     lea    6(a2),a0        ;palette
  1072.     move.w    4(a2),d0        ;aantal kleuren
  1073.     bra.s    gracfrm.col
  1074. gracfrm.pict
  1075.     cmp.l    #'ANIM',(a2)        ;animatie ?
  1076.     bne.s    gracfrm.noanim
  1077.  
  1078.     moveq.l    #0,d1
  1079.     move.w    pic_ani(a2),d1
  1080.     bclr    #7,d1            ;behandelbit weghalen
  1081.  
  1082.     moveq.l    #0,d3
  1083.     move.w    pic_wid(a2),d3
  1084.     lsr.w    #1,d3            ;/2
  1085.     muls    pic_hgt(a2),d3
  1086.     muls    pic_dpt(a2),d3
  1087.  
  1088.     add.l    d3,d3
  1089.  
  1090.     add.l    #pic_raw,d3
  1091.     move.l    d3,d5
  1092.  
  1093.     btst    #0,d1
  1094.     bne.s    gracfrm.buf2
  1095.     moveq.l    #0,d5
  1096. gracfrm.buf2
  1097.     add.l    d5,a2
  1098. gracfrm.noanim
  1099.     lea    pic_pal(a2),a0        ;palette
  1100.     move.w    pic_palnum(a2),d0
  1101.  
  1102.     tst.w    d0            ;0 planes ?
  1103.     beq.s    gracfrm.end
  1104. gracfrm.col
  1105. gracfrm.fa
  1106.     move.l    (a0)+,(a1)+
  1107.     dbra    d0,gracfrm.fa
  1108. gracfrm.end
  1109.     movem.l    (sp)+,d0-d7/a0-a6
  1110.     rts
  1111.     
  1112.     ;handles colorcycling in the palette-buffer
  1113.  
  1114. palcycctr
  1115.     movem.l    d0-d7/a0-a6,-(sp)
  1116.  
  1117.     move.l    curpic1,a2        ;current raw
  1118.     cmp.l    #0,a2
  1119.     beq.s    palcycctr.qb
  1120.     lea    cycdel1,a3        ;cycle delays
  1121.     move.l    #paltab,a4
  1122.     bsr    palcyc
  1123. palcycctr.qb
  1124.     move.l    curpic2,a2        ;current raw
  1125.     cmp.l    #0,a2
  1126.     beq.s    palcycctr.c
  1127.     lea    cycdel2,a3        ;cycle delays
  1128.     move.l    #16*2+paltab,a4
  1129.     bsr    palcyc
  1130. palcycctr.c
  1131.     movem.l    (sp)+,d0-d7/a0-a6
  1132.     rts
  1133.     
  1134.     ;copies palette-buffer to copper
  1135.  
  1136. palctr
  1137.     movem.l    d0-d7/a0-a6,-(sp)
  1138.  
  1139.     lea    gracprcol,a1        ;AGA
  1140.     move.l    #palette,a0
  1141.     move.l    #paltab,a2
  1142.     move.w    #8-1,d6
  1143. palctr.e
  1144.     move.w    #32-1,d7
  1145. palctr.d
  1146.     move.w    (a2)+,d0            ;get cycle-position
  1147.     move.w    (a0,d0),6(a1)            ;high RGB bits
  1148.     move.w    2(a0,d0),((32+1)*4)+6(a1)    ;low RGB bits
  1149.     add.l    #4,a1
  1150.     dbra    d7,palctr.d
  1151.     add.l    #((32+2)*4),a1
  1152.     dbra    d6,palctr.e
  1153. palctr.end
  1154.     movem.l    (sp)+,d0-d7/a0-a6
  1155.     rts
  1156.  
  1157.     ;reset palette tabel, for proper color cycling
  1158.  
  1159. paltabres
  1160.     movem.l    d0-d7/a0-a6,-(sp)
  1161.     lea    paltab,a0
  1162.     clr.l    d0
  1163.     move.w    #256-1,d1
  1164. paltabres.a
  1165.     move.w    d0,(a0)+
  1166.     add.w    #4,d0            ;aga color words, high RGB + low RGB
  1167.     dbra    d1,paltabres.a
  1168. paltabres.end
  1169.     movem.l    (sp)+,d0-d7/a0-a6
  1170.     rts
  1171.  
  1172.     ;colorcyclinghandling of a palette
  1173.  
  1174. palcyc
  1175.     movem.l    d0-d7/a0-a6,-(sp)
  1176.     move.w    #4-1,d7            ;4 cycles
  1177. palcyc.d
  1178.     tst.w    (a3)+            ;delay klaar ?
  1179.     bne.s    palcyc.c
  1180.     
  1181.     moveq.l    #0,d1
  1182.     move.b    pic_cycstr(a2),d1    ;start color
  1183.     lsl.b    #1,d1        ;*2
  1184.  
  1185.     moveq.l    #0,d2
  1186.     move.b    pic_cycend(a2),d2    ;end color
  1187.     lsl.b    #1,d2        ;*2
  1188.  
  1189.     moveq.l    #0,d3
  1190.     move.b    pic_cycadd(a2),d3    ;richting
  1191.  
  1192.     move.l    a4,a0            ;palette pointer
  1193.     move.l    a0,a1
  1194.     add.l    d1,a0            ;startcolor
  1195.     add.l    d2,a1            ;endcolor
  1196.     
  1197.     cmp.b    #1,d3            ;omhoog
  1198.     beq.s    palcyc.up    
  1199.     cmp.b    #3,d3            ;omlaag
  1200.     beq.s    palcyc.down
  1201.     bra.s    palcyc.i
  1202.  
  1203. palcyc.up                ;kleuren copieren
  1204.     move.w    (a1),d4            ;laatst color bewaren
  1205. palcyc.f                ;kleuren copieren
  1206.     cmp.l    a0,a1
  1207.     beq.s    palcyc.fa
  1208.     move.w    -(a1),2(a1)
  1209.     bra.s    palcyc.f
  1210. palcyc.fa
  1211.     move.w    d4,(a1)
  1212.     bra.s    palcyc.g    
  1213.     
  1214. palcyc.down
  1215.     move.w    (a0),d4            ;laatst color bewaren
  1216. palcyc.h                ;kleuren copieren
  1217.     cmp.l    a0,a1
  1218.     beq.s    palcyc.ha
  1219.     move.w    2(a0),(a0)+
  1220.     bra.s    palcyc.h
  1221. palcyc.ha
  1222.     move.w    d4,(a1)
  1223.  
  1224. palcyc.g
  1225.     move.b    pic_cycspd(a2),-1(a3)    ;delay zetten
  1226.     bra.s    palcyc.i
  1227. palcyc.c
  1228.     sub.w    #1,-2(a3)        ;cycle delay aftellen
  1229. palcyc.i
  1230.     add.l    #4,a2            ;next cycle info
  1231.     dbra    d7,palcyc.d
  1232.  
  1233. palcyc.qb
  1234.     movem.l    (sp)+,d0-d7/a0-a6
  1235.     rts
  1236.  
  1237.  
  1238.  
  1239.     SECTION    variabelen,DATA
  1240.  
  1241.     cnop    0,2
  1242. curtsk        dc.l    0
  1243. tskpri        dc.l    0
  1244. duplok        dc.l    0
  1245. inttel        dc.l    0
  1246. intdel        dc.l    0
  1247.  
  1248. form        dc.l    0
  1249. ifffil        dc.l    0
  1250. intvbold    dc.l    0
  1251. inttbeold    dc.l    0
  1252. patpos        dc.l    0
  1253. gfxlib        dc.l    0
  1254. doslib        dc.l    0
  1255. wbview      dc.l    0
  1256. mt_data        dc.l    0
  1257. memvid        dc.l    0
  1258. oldcprlist    dc.l    0
  1259. hogscr        dc.l    vew_hgt
  1260.  
  1261. inspos        dc.l    -1
  1262. anispd1        dc.w    1    ;nooit op 0 !
  1263. anispd2        dc.w    1
  1264.  
  1265.         cnop    0,2
  1266. varclr.s            ;start wissen
  1267. oldrot        dc.l    0
  1268. curpic        dc.l    0
  1269. curfrm        dc.l    0
  1270. cycdel1        ds.w    4
  1271. cycdel2        ds.w    4
  1272.  
  1273. rotinf1        dc.w    0
  1274. rotinf2        dc.w    0
  1275.  
  1276. effspd        dc.w    0
  1277. efflop        dc.b    0
  1278. anilop1        dc.b    0
  1279. anilop2        dc.b    0
  1280. anipal1        dc.b    0
  1281. anipal2        dc.b    0
  1282. rotdpl        dc.b    1
  1283. rottrg        dc.b    1
  1284. dplctr        dc.b    0
  1285.         cnop    0,2
  1286.  
  1287. insdat        ds.l    4
  1288. inspri        dc.l    0
  1289. instel        dc.w    0
  1290.  
  1291. cureff        dc.l    0
  1292. efftel        dc.w    0
  1293.  
  1294. curpal1        dc.l    0
  1295. curpal2        dc.l    0
  1296. currot1        dc.l    0
  1297. currot2        dc.l    0
  1298. curpic1        dc.l    0
  1299. curpic2        dc.l    0
  1300. anitel1        dc.w    0
  1301. anitel2        dc.w    0
  1302. curfrm1        dc.l    0
  1303. curfrm2        dc.l    0
  1304. oldfrm1        dc.l    0
  1305. oldfrm2        dc.l    0
  1306.  
  1307. varclr.e
  1308.         dc.l    0            ;wisruimte
  1309.     
  1310. varclr.ql    equ    varclr.e-varclr.s    ;wislengte
  1311.     
  1312. ntscmode    dc.b    0
  1313. end        dc.b    0
  1314.  
  1315. pronam    dc.b    'VideoTracker',0
  1316.     cnop    0,2
  1317. dosnam    dc.b    'dos.library',0
  1318.     cnop    0,4
  1319. gfxnam    dc.b    'graphics.library',0
  1320.     cnop    0,4
  1321.     
  1322.     cnop    0,4
  1323. gra.s            ;copperlist edit buffer
  1324. gracprscr
  1325.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1326. gracprbpl
  1327.     dc.w    $100,$0000,$102,$0000,$104,$0020
  1328.     dc.w    $108,$0000,$10a,$0000,$1fc,$0003
  1329. gracprpln
  1330.     dc.w    $e0,$0000,$e2,$0000    ;1
  1331.     dc.w    $e4,$0000,$e6,$0000    ;2
  1332.     dc.w    $e8,$0000,$ea,$0000    ;3
  1333.     dc.w    $ec,$0000,$ee,$0000    ;4
  1334.     dc.w    $f0,$0000,$f2,$0000    ;5
  1335.     dc.w    $f4,$0000,$f6,$0000    ;6
  1336.     dc.w    $f8,$0000,$fa,$0000    ;7
  1337.     dc.w    $fc,$0000,$fe,$0000    ;8
  1338. gracprcol
  1339.     dc.w    $106,$0000
  1340.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1341.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1342.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1343.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1344.     dc.w    $106,$0200
  1345.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1346.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1347.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1348.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1349.  
  1350.     dc.w    $106,$2000
  1351.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1352.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1353.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1354.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1355.     dc.w    $106,$2200
  1356.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1357.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1358.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1359.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1360.  
  1361.     dc.w    $106,$4000
  1362.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1363.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1364.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1365.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1366.     dc.w    $106,$4200
  1367.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1368.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1369.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1370.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1371.  
  1372.     dc.w    $106,$6000
  1373.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1374.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1375.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1376.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1377.     dc.w    $106,$6200
  1378.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1379.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1380.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1381.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1382.  
  1383.     dc.w    $106,$8000
  1384.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1385.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1386.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1387.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1388.     dc.w    $106,$8200
  1389.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1390.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1391.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1392.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1393.  
  1394.     dc.w    $106,$a000
  1395.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1396.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1397.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1398.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1399.     dc.w    $106,$a200
  1400.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1401.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1402.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1403.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1404.  
  1405.     dc.w    $106,$c000
  1406.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1407.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1408.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1409.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1410.     dc.w    $106,$c200
  1411.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1412.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1413.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1414.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1415.  
  1416.     dc.w    $106,$e000
  1417.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1418.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1419.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1420.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1421.     dc.w    $106,$e200
  1422.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1423.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1424.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1425.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1426.  
  1427.     dc.w    $106,$1000
  1428.  
  1429. cprjmp
  1430.     dc.w    $080,0,$082,0
  1431. gra.e
  1432. gra.ql    equ    gra.e-gra.s        ;block lengte
  1433.  
  1434. palette        ds.l    256        ;palette 24-bits, far out !
  1435. paltab        ds.w    256        ;palette cycle-tabel
  1436.  
  1437.     cnop    0,8
  1438. var    ds.b    $300    ;variabelen voor routines
  1439.  
  1440.  
  1441.     SECTION    copper,DATA_c
  1442.  
  1443. cpr                    ;real copperlist
  1444.     dc.w    $0001,$fffe
  1445.     dc.w    $09c,$8001        ;tbeint
  1446. cprspr
  1447.     dc.w    $120,$0000,$122,$0000
  1448.     dc.w    $124,$0000,$126,$0000
  1449.     dc.w    $128,$0000,$12a,$0000
  1450.     dc.w    $12c,$0000,$12e,$0000
  1451.     dc.w    $130,$0000,$132,$0000
  1452.     dc.w    $134,$0000,$136,$0000
  1453.     dc.w    $138,$0000,$13a,$0000
  1454.     dc.w    $13c,$0000,$13e,$0000
  1455.  
  1456. cprbuf
  1457.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1458.     dc.w    $100,$9000,$102,$0000,$104,$0020
  1459.     dc.w    $108,$0000,$10a,$0000,$1fc,$0003
  1460.  
  1461.     dc.w    $e0,$0000,$e2,$0000    ;0
  1462.     dc.w    $e4,$0000,$e6,$0000    ;1
  1463.     dc.w    $e8,$0000,$ea,$0000    ;2
  1464.     dc.w    $ec,$0000,$ee,$0000    ;3
  1465.     dc.w    $f0,$0000,$f2,$0000    ;4
  1466.     dc.w    $f4,$0000,$f6,$0000    ;5
  1467.     dc.w    $f8,$0000,$fa,$0000    ;6
  1468.     dc.w    $fc,$0000,$fe,$0000    ;7
  1469.  
  1470.     dc.w    $106,$0000
  1471.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1472.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1473.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1474.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1475.     dc.w    $106,$0200
  1476.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1477.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1478.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1479.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1480.  
  1481.     dc.w    $106,$2000
  1482.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1483.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1484.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1485.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1486.     dc.w    $106,$2200
  1487.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1488.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1489.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1490.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1491.  
  1492.     dc.w    $106,$4000
  1493.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1494.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1495.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1496.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1497.     dc.w    $106,$4200
  1498.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1499.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1500.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1501.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1502.  
  1503.     dc.w    $106,$6000
  1504.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1505.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1506.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1507.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1508.     dc.w    $106,$6200
  1509.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1510.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1511.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1512.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1513.  
  1514.     dc.w    $106,$8000
  1515.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1516.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1517.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1518.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1519.     dc.w    $106,$8200
  1520.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1521.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1522.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1523.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1524.  
  1525.     dc.w    $106,$a000
  1526.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1527.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1528.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1529.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1530.     dc.w    $106,$a200
  1531.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1532.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1533.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1534.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1535.  
  1536.     dc.w    $106,$c000
  1537.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1538.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1539.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1540.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1541.     dc.w    $106,$c200
  1542.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1543.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1544.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1545.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1546.  
  1547.     dc.w    $106,$e000
  1548.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1549.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1550.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1551.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1552.     dc.w    $106,$e200
  1553.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1554.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1555.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1556.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1557.  
  1558.     dc.w    $106,$1000
  1559.  
  1560.     dc.w    $080,0,$082,0
  1561. cprbuf.e
  1562.  
  1563.     dc.w    $088,$0000        ;copjmp2
  1564.     dc.w    $080,0,$082,0        ;moet achter cprbck blijven !
  1565. cprbck
  1566. sprdat
  1567.     dc.w    $ffff,$fffe
  1568.  
  1569.     
  1570. ;    SECTION    10,CODE
  1571.         endc
  1572.  
  1573. ; this is the routine-source
  1574. ;**********************************************************************
  1575.  
  1576.  
  1577.     SECTION    10,code
  1578. rotp
  1579.  
  1580. ;calc        ;on=calculate tunnel-data,off=play tunnel
  1581.  
  1582. rottun_wid    equ    320
  1583. rottun_hgt    equ    256
  1584.  
  1585.         ifd    calc
  1586. rotpic_wid    equ    20
  1587. rotpic_hgt    equ    128
  1588. rotpic_dpt    equ    1
  1589.         endc
  1590.         
  1591.         ifnd    calc
  1592. rotpic_wid    equ    40
  1593. rotpic_hgt    equ    256
  1594. rotpic_dpt    equ    1
  1595. rotcop_hgt    equ    113
  1596. rotcop_dpt    equ    5
  1597.         endc
  1598.         
  1599. ;    Input:
  1600. ;    a0=variabelen tabel
  1601. ;    d0=routinfo
  1602.  
  1603. ;    Output:
  1604. ;    a0=picture
  1605. ;    d1=copperlist
  1606.  
  1607.  
  1608. rot
  1609.     ifnd    ocs
  1610.     dc.l    'ROTA'
  1611.     endc
  1612.     ifd    ocs
  1613.     dc.l    'ROTO'
  1614.     endc
  1615.     movem.l    d2-d7/a1-a6,-(sp)
  1616.  
  1617.     lea    ($dff000).l,a6        ;hardware
  1618.     lea    rot(pc),a5            ;prog base
  1619.     move.l    a2,rotchp-rot(a5)
  1620.  
  1621.     move.l    #32,d2
  1622.     bsr    getd7
  1623.  
  1624. rot.ea    
  1625. ;    move.l    #4,d2            ;hoogte
  1626. ;    bsr    getd7
  1627. ;    muls    #1380,d7
  1628. ;    move.l    d7,variabele1-rot(a5)
  1629.  
  1630. ;    move.l    #1,d2            ;breedte
  1631. ;    bsr    getd7
  1632. ;    muls    #6,d7
  1633. ;    move.l    d7,variabele7-rot(a5)
  1634.  
  1635. rot.end
  1636.  
  1637.     ifnd    calc
  1638.     move.l    var_cprbck(a0),d1
  1639.     sub.l    #8,d1
  1640.  
  1641.     move.l    rotchp-rot(a5),a1
  1642.     add.l    #rotcop1-rotc,a1    ;copperjump adres zetten
  1643. ;    move.l    rotcopbuf-rot(a5),d2    ;double buffer
  1644. ;    add.l    d2,a1
  1645.  
  1646.     move.w    d1,6(a1)
  1647.     swap    d1
  1648.     move.w    d1,2(a1)
  1649.  
  1650. ;    move.l    a1,a2
  1651. ;    add.l    #rotcprbck1ntsc,a2
  1652. ;    move.l    a1,a3
  1653. ;    add.l    #rotcprend1ntsc,a3
  1654. ;    move.l    a1,a4
  1655. ;    add.l    #rotcprbck1,a4
  1656.  
  1657. ;    cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1658. ;    bne    rot.ntsc
  1659.  
  1660. ;    move.l    #$9029fffe,(a2)        ;reset ntsc split
  1661. ;    move.l    #$fa29fffe,(a3)        ;reset ntsc end
  1662. ;    add.l    #rotcprbck1,a1
  1663. ;    move.l    #$c825fffe,d0
  1664. ;    bra    rot.split
  1665. ;rot.ntsc
  1666. ;    move.l    #$c825fffe,(a4)        ;reset pal split
  1667. ;    move.l    #$00880000,(a3)        ;set ntsc end
  1668. ;    add.l    #rotcprbck1ntsc,a1
  1669. ;    move.l    #$9029fffe,d0
  1670.  
  1671. ;rot.split
  1672. ;    move.l    #$00880000,(a1)        ;set break
  1673. ;    move.l    var_cprbck(a0),a2
  1674. ;    cmp.b    #$ff,(a2)        ;menu uit ?
  1675. ;    bne    rot.a
  1676. ;    move.l    d0,(a1)
  1677. rot.a
  1678.     endc
  1679.     
  1680.     ifd    calc
  1681.     tst.b    rotcalcmode
  1682.     bne    rot.calcready
  1683.     endc
  1684.     bsr    rotint            ;eventueel init
  1685. rot.calcready
  1686.  
  1687.     ifnd    calc
  1688.     lea    rotaddtab(pc),a0
  1689.     lsl.l    #2,d0
  1690.     move.l    (a0,d0),rotadd-rot(a5)
  1691.     bsr    rotvew
  1692.     endc
  1693.  
  1694.     move.l    rotchp-rot(a5),a0
  1695.     add.l    #rotpic-rotc,a0            ;picture
  1696.  
  1697.     ifnd    calc
  1698.     add.l    rotbuf-rot(a5),a0
  1699.     eor.l    #rotpic.e-rotpic,rotbuf-rot(a5)
  1700.     endc
  1701.  
  1702.     clr.l    d1
  1703.     
  1704.     ifnd    calc
  1705.     move.l    rotchp-rot(a5),d1
  1706.     add.l    #rotcop1-rotc,d1        ;copperlist
  1707.     endc
  1708.     
  1709.     movem.l    (sp)+,d2-d7/a1-a6
  1710.     rts
  1711.  
  1712. getd7
  1713.     move.w    d0,d1
  1714.     divs    d2,d1
  1715.     and.l    #$ffff,d1
  1716.     move.l    d1,d7
  1717.     muls    d2,d1
  1718.     sub.w    d1,d0
  1719.     move.l    d0,d6
  1720.     add.l    #1,d7
  1721.     rts
  1722.  
  1723. rotint                    ;convert picture bits to bytes
  1724.     movem.l    d0-d7/a0-a6,-(sp)
  1725.  
  1726.     ifnd    calc
  1727.     move.l    rotchp-rot(a5),a1
  1728.     add.l    #rotcoptus.s-rotc,a1
  1729.     tst.b    (a1)            ;init copper ?
  1730.     bne    rotint.pic
  1731.  
  1732.     move.l    a5,a2
  1733.     add.l    #rotcoppic+544-rot,a2    ;raw pic
  1734.     move.l    a5,a4
  1735.     add.l    #rotcoppic+32-rot,a4    ;palette
  1736.  
  1737.     move.l    rotcopstr-rot(a5),d1
  1738.     
  1739.     move.w    #rotcop_hgt-1,d0
  1740. rotint.g
  1741.     move.b    d1,(a1)            ;y-raster
  1742.  
  1743.     move.w    #5-1,d7
  1744. rotint.h
  1745.     move.w    #8-1,d6
  1746. rotint.ha
  1747.     clr.w    d2
  1748.     btst    d6,(a2)
  1749.     beq    rotint.hab
  1750.     bset    #0,d2
  1751. rotint.hab
  1752.     btst    d6,6(a2)
  1753.     beq    rotint.hac
  1754.     bset    #1,d2
  1755. rotint.hac
  1756.     btst    d6,2*6(a2)
  1757.     beq    rotint.had
  1758.     bset    #2,d2
  1759. rotint.had
  1760.     btst    d6,3*6(a2)
  1761.     beq    rotint.hae
  1762.     bset    #3,d2
  1763. rotint.hae
  1764.     btst    d6,4*6(a2)
  1765.     beq    rotint.haf
  1766.     bset    #4,d2
  1767. rotint.haf
  1768.     clr.l    d3
  1769.     move.w    d2,d3
  1770.     lsl.l    #1,d3            ;words
  1771.     move.w    (a4,d3),d2
  1772.     move.w    d2,6(a1)
  1773.     add.l    #4,a1
  1774.     dbra    d6,rotint.ha        ;next bit
  1775.  
  1776.     add.l    #1,a2            ;next byte
  1777.     dbra    d7,rotint.h
  1778.  
  1779.     add.l    #6*4+1,a2        ;next row
  1780.     
  1781.     add.l    #1,d1
  1782.     add.l    #4,a1
  1783.  
  1784.     dbra    d0,rotint.g
  1785.  
  1786.     endc
  1787.     
  1788. rotint.pic
  1789.     move.l    var_bck(a0),a1        ;background picture
  1790.     cmp.l    #0,a1            ;empty ?
  1791.     beq    rotint.nopic
  1792.  
  1793.     cmp.l    rotbck-rot(a5),a1    ;already on screen ?
  1794.     beq    rotint.nopic
  1795.  
  1796.     clr.l    d0
  1797.     move.w    pic_wid(a1),d0        ;get width
  1798.     lsl.l    #3,d0            ;*8 for pixelnumber
  1799.     cmp.w    #rottun_wid,d0            ;bigger than buffer ?
  1800.     bgt    rotint.nopic
  1801.  
  1802.     clr.l    d1
  1803.     move.w    pic_hgt(a1),d1        ;heigth
  1804.     cmp.w    #rottun_hgt,d1            ;bigger than buffer ?
  1805.     bgt    rotint.nopic
  1806.     muls    d1,d0            ;* heigth
  1807.  
  1808.     cmp.l    #rotcol_l,d0        ;bigger than buffer ?
  1809.     bgt    rotint.nopic
  1810.  
  1811.     move.l    a1,rotbck-rot(a5)
  1812.  
  1813.     lea    pic_pal(a1),a2
  1814.  
  1815.     ifd    calc
  1816.     move.l    rotchp-rot(a5),a3
  1817.     add.l    #rotpic+pic_pal-rotc,a3
  1818.     move.l    (a2),(a3)
  1819.     move.l    4(a2),4(a3)
  1820.     move.l    8(a2),8(a3)
  1821.     move.l    12(a2),12(a3)
  1822.     move.l    16(a2),16(a3)
  1823.     move.l    20(a2),20(a3)
  1824.     move.l    24(a2),24(a3)
  1825.     move.l    28(a2),28(a3)
  1826.  
  1827.     move.l    32(a2),32(a3)
  1828.     move.l    36(a2),36(a3)
  1829.     move.l    40(a2),40(a3)
  1830.     move.l    44(a2),44(a3)
  1831.     move.l    48(a2),48(a3)
  1832.     move.l    52(a2),52(a3)
  1833.     move.l    56(a2),56(a3)
  1834.     move.l    60(a2),60(a3)
  1835.     endc
  1836.     
  1837.     ifnd    calc
  1838.     move.l    rotchp-rot(a5),a3
  1839.     add.l    #rotpic2+pic_pal-rotc,a3
  1840. ;    move.l    (a2),(a3)
  1841. ;    move.l    4(a2),4(a3)
  1842. ;    move.l    8(a2),8(a3)
  1843. ;    move.l    12(a2),12(a3)
  1844.     endc
  1845.     
  1846.     move.l    a5,a4
  1847.     move.l    a5,a6
  1848.     add.l    #rotcol-rot,a4        ;start colorbuffer
  1849.     add.l    #rotcol.e-rot,a6
  1850.     
  1851.     clr.l    d0
  1852.     move.w    pic_wid(a1),d0        ;get width
  1853.     lea    pic_raw(a1),a2        ;start raw planes
  1854.  
  1855.     clr.l    d1            ;y start position
  1856. rotint.f
  1857.     clr.l    d6            ;x start position
  1858. rotint.d
  1859.  
  1860.     move.l    #8-1,d7            ;read bits of 1 byte
  1861. rotint.c
  1862.  
  1863.     clr.l    d3            ;colorvalue
  1864.     move.l    a2,a3
  1865.     clr.l    d5            ;colorinfo
  1866. rotint.c1
  1867.     btst    d7,(a2)            ;get colorbits
  1868.     beq    rotint.c0    
  1869.     bset    d5,d3
  1870. rotint.c0    
  1871.     add.l    d0,a2
  1872.     add.l    #1,d5
  1873.     cmp.w    pic_dpt(a1),d5
  1874.     bne    rotint.c1
  1875.     move.l    a3,a2
  1876.  
  1877.     move.l    d1,d5            ;y pos
  1878.     muls    #rottun_wid,d5
  1879. ;    lsl.l    #8,d5            ;*256 (width)
  1880.  
  1881.     move.l    d6,d4            ;x byte pos    
  1882.     lsl.l    #3,d4            ;make pixels
  1883.     add.l    #7,d4            ;x bit pos
  1884.     sub.l    d7,d4
  1885.  
  1886.     move.l    a4,a3
  1887.     add.l    d4,a3
  1888.     add.l    d5,a3
  1889.     move.b    d3,(a3)
  1890.         
  1891.     move.l    a6,a3
  1892.     add.l    d4,a3
  1893.     add.l    d5,a3
  1894.     move.b    d3,(a3)
  1895.         
  1896.     dbra    d7,rotint.c
  1897.  
  1898.     add.l    #1,a2            ;next byte
  1899.  
  1900.     add.l    #1,d6
  1901.     cmp.l    d0,d6
  1902.     bne    rotint.d
  1903.  
  1904.     clr.l    d4
  1905.     move.w    pic_dpt(a1),d4
  1906.     sub.w    #1,d4
  1907.     muls    d0,d4
  1908.     add.l    d4,a2
  1909.  
  1910.     add.l    #1,d1
  1911.     cmp.w    pic_hgt(a1),d1        ;y-end reached ?
  1912.     bne    rotint.f
  1913.     
  1914.     bra    rotint.end
  1915. rotint.nopic
  1916.     ifd    calc
  1917.     bsr    rotcal
  1918.     endc
  1919.     
  1920. rotint.end    
  1921.     movem.l    (sp)+,d0-d7/a0-a6
  1922.     rts
  1923.  
  1924.     ifd    calc
  1925. rotcal                    ;calculate tunnel
  1926.     movem.l    d0-d7/a0-a6,-(sp)
  1927.  
  1928.     move.l    #32767-7000,d3        ;size
  1929. rotcal.f
  1930.     move.l    a5,a3
  1931.     add.l    #rotcol-rot,a3
  1932. rotcal.d
  1933.     move.w    #((32767-7000)/256)/1-1,d6    ;sinus pixel heigth
  1934. rotcal.c
  1935.     btst    #6,($bfe001).l
  1936.     beq    rotcal.end
  1937.  
  1938.     lea    rotsin,a0
  1939.     move.l    a3,a1
  1940.     move.w    #rottun_wid-2,d0        ;tunnel picture width
  1941. rotcal.a
  1942.     move.b    (a1)+,d1
  1943.     
  1944.     move.w    #4-1,d7            ;sinus pixel width
  1945. rotcal.e
  1946.  
  1947.     clr.l    d2
  1948.     move.w    (a0)+,d2        ;get sinus
  1949.     ext.l    d2
  1950.     divs.l    d3,d2
  1951. ;    divs    d3,d2
  1952.     ext.l    d2            ;x
  1953.  
  1954.     cmp.l    #rotpic_wid*4,d2    ;out of border ?
  1955.     bge    rotcal.not
  1956.     cmp.l    #-rotpic_wid*4,d2
  1957.     blt    rotcal.not
  1958.     
  1959.     move.l    a5,a4
  1960.     add.l    #rotoff-rot,a4
  1961.     move.l    d2,d5
  1962.     add.l    #rotpic_wid*4,d5
  1963.     lsl.l    #2,d5            ;longwords
  1964.     add.l    d5,a4
  1965.         
  1966.     add.l    #rotpic_wid*4,d2
  1967.  
  1968.     lea    rotpic+pic_raw,a2
  1969.     move.l    d2,d4
  1970.     lsr.l    #3,d4
  1971.     add.l    d4,a2
  1972.     lsl.l    #3,d4
  1973.     eor.b    #7,d2
  1974.     sub.l    d4,d2
  1975.                     
  1976.     clr.l    d4
  1977.     move.w    (((rotsin_l/4)/2)*2)-2(a0),d4    ;get cos
  1978.     ext.l    d4
  1979.     divs.l    d3,d4
  1980. ;    divs    d3,d4
  1981.     ext.l    d4            ;y
  1982.  
  1983.     cmp.l    #rotpic_hgt/2,d4    ;out of border ?
  1984.     bge    rotcal.not
  1985.     cmp.l    #-rotpic_hgt/2,d4
  1986.     blt    rotcal.not
  1987.     
  1988.     move.l    d4,d5
  1989.     add.l    #rotpic_hgt/2,d5
  1990.     muls    #rotpic_wid*8*4,d5    ;longwords
  1991.     add.l    d5,a4
  1992.  
  1993.     move.l    a1,a6            ;current picture position
  1994.     sub.l    a5,a6            ;-rot
  1995.     sub.l    #rotcol-rot,a6        ;-rotcol
  1996.     move.l    a6,(a4)            ;offset table
  1997.         
  1998.     add.l    #rotpic_hgt/2,d4
  1999.     muls    #rotpic_wid*rotpic_dpt,d4
  2000.     add.l    d4,a2
  2001.     
  2002. ;;    moveq.l    #0,d4
  2003. rotcal.b2    
  2004. ;    tst.b    d1
  2005. ;;    btst    d4,d1
  2006. ;    beq    rotcal.b1
  2007.     bset    d2,(a2)
  2008. ;    bra    rotcal.b1a
  2009. ;rotcal.b1
  2010. ;;    bclr    d2,(a2)
  2011. ;rotcal.b1a
  2012. ;;    add.l    #rotpic_wid,a2
  2013. ;;    add.b    #1,d4
  2014. ;;    cmp.b    #rotpic_dpt,d4
  2015. ;;    bne    rotcal.b2
  2016.  
  2017. rotcal.not
  2018.     dbra    d7,rotcal.e        ;next sinus-position
  2019.     
  2020.     dbra    d0,rotcal.a        ;next x-pixel
  2021.  
  2022.     sub.l    #1*1,d3
  2023.     cmp.l    #0,d3
  2024.     ble    rotcal.end
  2025.     dbra    d6,rotcal.c        ;next sinus-size
  2026.  
  2027.     add.l    #rottun_wid,a3            ;next tunnelpicture y-row
  2028.     move.l    a3,d0
  2029.     sub.l    #rotcol,d0
  2030.     cmp.l    #256*rottun_wid,d0
  2031.     bne    rotcal.d
  2032.     bra    rotcal.f
  2033. rotcal.end
  2034.     move.b    #1,rotcalcmode
  2035.     movem.l    (sp)+,d0-d7/a0-a6
  2036.     rts
  2037.     endc
  2038.     
  2039.  
  2040. rotvew                    ;show tunnel on screen
  2041.     movem.l    d0-d7/a0-a6,-(sp)
  2042.     move.l    a5,a0
  2043.     add.l    #rotoff-rot,a0        ;tunnel data
  2044.     move.l    rotchp-rot(a5),a1
  2045.     add.l    #rotpic+pic_raw-rotc,a1    ;screen picture
  2046.     add.l    rotbuf-rot(a5),a1
  2047.  
  2048.     move.l    a5,a6
  2049.     add.l    #rotcol.e-rot,a6    ;tunnel picture
  2050.  
  2051. rotvew.e1
  2052.     move.l    rotpos-rot(a5),d4
  2053.  
  2054.     move.l    rotadd-rot(a5),d1
  2055.     add.l    d1,d4
  2056.     cmp.l    #rottun_hgt*rottun_wid,d4
  2057.     blt.s    rotvew.e
  2058.     sub.l    #rottun_hgt*rottun_wid,d4
  2059. rotvew.e    
  2060.     cmp.l    #0,d4
  2061.     bge.s    rotvew.e2
  2062.     add.l    #rottun_hgt*rottun_wid,d4
  2063. rotvew.e2
  2064.     move.l    d4,rotpos-rot(a5)
  2065.     sub.l    d4,a6
  2066.  
  2067.     move.w    #(rotpic_hgt/2)-1,d6
  2068. rotvew.d
  2069. ;    rept    ((rotpic_wid)/4)
  2070.  
  2071.     move.w    #rotpic_wid/4-1,d5
  2072. rotvew.d2
  2073.  
  2074.     moveq.l    #0,d4            ;plane 0
  2075.     
  2076.     movem.l    (a0)+,a2-a5
  2077.  
  2078.     add.l    a6,a2
  2079.     move.b    (a2),d3
  2080.     beq.s    rotvew.l1
  2081.     bset    #31,d4
  2082. rotvew.l1
  2083.  
  2084.     add.l    a6,a3
  2085.     move.b    (a3),d3
  2086.     beq.s    rotvew.l2
  2087.     bset    #29,d4
  2088.  
  2089. rotvew.l2
  2090.     add.l    a6,a4
  2091.     move.b    (a4),d3
  2092.     beq.s    rotvew.l3
  2093.     bset    #27,d4
  2094.  
  2095. rotvew.l3
  2096.     add.l    a6,a5
  2097.     move.b    (a5),d3
  2098.     beq.s    rotvew.l4
  2099.     bset    #25,d4
  2100.  
  2101. rotvew.l4
  2102.     movem.l    (a0)+,a2-a5
  2103.  
  2104.     add.l    a6,a2
  2105.     move.b    (a2),d3
  2106.     beq.s    rotvew.l5
  2107.     bset    #23,d4
  2108. rotvew.l5
  2109.  
  2110.     add.l    a6,a3
  2111.     move.b    (a3),d3
  2112.     beq.s    rotvew.l6
  2113.     bset    #21,d4
  2114.  
  2115. rotvew.l6
  2116.     add.l    a6,a4
  2117.     move.b    (a4),d3
  2118.     beq.s    rotvew.l7
  2119.     bset    #19,d4
  2120.  
  2121. rotvew.l7
  2122.     add.l    a6,a5
  2123.     move.b    (a5),d3
  2124.     beq.s    rotvew.l8
  2125.     bset    #17,d4
  2126.  
  2127. rotvew.l8
  2128.     movem.l    (a0)+,a2-a5
  2129.  
  2130.     add.l    a6,a2
  2131.     move.b    (a2),d3
  2132.     beq.s    rotvew.l9
  2133.     bset    #15,d4
  2134. rotvew.l9
  2135.  
  2136.     add.l    a6,a3
  2137.     move.b    (a3),d3
  2138.     beq.s    rotvew.l10
  2139.     bset    #13,d4
  2140.  
  2141. rotvew.l10
  2142.     add.l    a6,a4
  2143.     move.b    (a4),d3
  2144.     beq.s    rotvew.l11
  2145.     bset    #11,d4
  2146.  
  2147. rotvew.l11
  2148.     add.l    a6,a5
  2149.     move.b    (a5),d3
  2150.     beq.s    rotvew.l12
  2151.     bset    #9,d4
  2152.  
  2153. rotvew.l12
  2154.     movem.l    (a0)+,a2-a5
  2155.  
  2156.     add.l    a6,a2
  2157.     move.b    (a2),d3
  2158.     beq.s    rotvew.l13
  2159.     bset    #7,d4
  2160. rotvew.l13
  2161.  
  2162.     add.l    a6,a3
  2163.     move.b    (a3),d3
  2164.     beq.s    rotvew.l14
  2165.     bset    #5,d4
  2166.  
  2167. rotvew.l14
  2168.     add.l    a6,a4
  2169.     move.b    (a4),d3
  2170.     beq.s    rotvew.l15
  2171.     bset    #3,d4
  2172.  
  2173. rotvew.l15
  2174.     add.l    a6,a5
  2175.     move.b    (a5),d3
  2176.     beq.s    rotvew.l16
  2177.     bset    #1,d4
  2178.  
  2179. rotvew.l16
  2180.     move.l    d4,(a1)+
  2181.  
  2182. ;    endr
  2183.     dbra    d5,rotvew.d2
  2184.     
  2185.     add.l    #(1*(rotpic_wid*rotpic_dpt))+(rotpic_wid*(rotpic_dpt-1)),a1
  2186.     dbra    d6,rotvew.d
  2187.     
  2188.             
  2189. rotvew.end
  2190.     movem.l    (sp)+,d0-d7/a0-a6
  2191.     rts
  2192.  
  2193.  
  2194. rotchp        dc.l    0
  2195. rotadd        dc.l    0
  2196. rotbuf        dc.l    0
  2197. rotcopbuf    dc.l    0
  2198. rotbck        dc.l    0
  2199. rotpos        dc.l    0
  2200. rotcopstr    dc.l    $73
  2201.  
  2202. rotaddtab
  2203.     dc.l    rottun_wid        ;erin
  2204.     dc.l    rottun_wid+1    ;links erin
  2205.     dc.l    rottun_wid-1    ;rechts erin
  2206.     dc.l    -rottun_wid        ;eruit
  2207.     dc.l    -rottun_wid-1    ;links eruit
  2208.     dc.l    -rottun_wid+1    ;rechts eruit
  2209.     dc.l    rottun_wid+2    ;links snel erin
  2210.     dc.l    rottun_wid-2    ;rechts snel erin
  2211.     dc.l    -rottun_wid-2    ;links snel eruit
  2212.     dc.l    -rottun_wid+2    ;rechts snel eruit
  2213.     dc.l    0
  2214.     dc.l    rottun_wid*2        ;erin
  2215.     dc.l    (rottun_wid*2)+1    ;links erin
  2216.     dc.l    (rottun_wid*2)-1    ;rechts erin
  2217.     dc.l    -(rottun_wid*2)        ;eruit
  2218.     dc.l    -(rottun_wid*2)-1    ;links eruit
  2219.     dc.l    -(rottun_wid*2)+1    ;rechts eruit
  2220.     dc.l    (rottun_wid*2)+2    ;links snel erin
  2221.     dc.l    (rottun_wid*2)-2    ;rechts snel erin
  2222.     dc.l    -(rottun_wid*2)-2    ;links snel eruit
  2223.     dc.l    -(rottun_wid*2)+2    ;rechts snel eruit
  2224.  
  2225.     dc.l    rottun_wid*70+70    ;psycho !!!
  2226.  
  2227.     ds.l    26
  2228.  
  2229.  
  2230.     ifd    calc
  2231. rotcalcmode    dc.l    0
  2232. rotsin        ;(360 graden / rottun_wid / 4) + een beetje ; no 0 value !
  2233.  
  2234.        dc.w       1,161,322,483,643,804,965,1126,1286,1447,1608,1768
  2235.        dc.w       1929,2090,2250,2411,2571,2731,2892,3052,3212,3372,3532,3692
  2236.        dc.w       3851,4011,4171,4330,4490,4649,4808,4967,5126,5285,5444,5602
  2237.        dc.w       5761,5919,6077,6235,6393,6550,6708,6865,7023,7180,7336,7493
  2238.        dc.w       7650,7806,7962,8118,8274,8429,8585,8740,8895,9049,9204,9358
  2239.        dc.w       9512,9666,9819,9973,10126,10279,10431,10584,10736,10888,11039,11191
  2240.        dc.w       11342,11492,11643,11793,11943,12093,12242,12391,12540,12688,12836,12984
  2241.        dc.w       13132,13279,13426,13572,13719,13865,14010,14155,14300,14445,14589,14733
  2242.        dc.w       14876,15020,15162,15305,15447,15588,15730,15871,16011,16151,16291,16430
  2243.        dc.w       16569,16708,16846,16984,17121,17258,17395,17531,17666,17802,17937,18071
  2244.        dc.w       18205,18338,18472,18604,18736,18868,18999,19130,19261,19390,19520,19649
  2245.        dc.w       19777,19905,20033,20160,20286,20413,20538,20663,20788,20912,21035,21159
  2246.        dc.w       21281,21403,21525,21646,21766,21886,22006,22125,22243,22361,22478,22595
  2247.        dc.w       22711,22827,22942,23056,23170,23284,23397,23509,23621,23732,23843,23953
  2248.        dc.w       24062,24171,24279,24387,24494,24601,24707,24812,24917,25021,25125,25228
  2249.        dc.w       25330,25432,25533,25633,25733,25832,25931,26029,26126,26223,26319,26415
  2250.        dc.w       26510,26604,26698,26790,26883,26974,27065,27156,27245,27334,27423,27511
  2251.        dc.w       27598,27684,27770,27855,27939,28023,28106,28188,28270,28351,28431,28511
  2252.        dc.w       28590,28668,28746,28822,28899,28974,29049,29123,29196,29269,29341,29412
  2253.        dc.w       29483,29552,29622,29690,29758,29825,29891,29956,30021,30085,30149,30211
  2254.        dc.w       30273,30334,30395,30455,30514,30572,30629,30686,30742,30798,30852,30906
  2255.        dc.w       30959,31011,31063,31114,31164,31213,31262,31309,31357,31403,31448,31493
  2256.        dc.w       31537,31580,31623,31665,31706,31746,31785,31824,31862,31899,31936,31971
  2257.        dc.w       32006,32040,32073,32106,32138,32169,32199,32228,32257,32285,32312,32338
  2258.        dc.w       32364,32389,32413,32436,32458,32480,32501,32521,32540,32559,32576,32593
  2259.        dc.w       32609,32625,32639,32653,32666,32678,32690,32700,32710,32719,32728,32735
  2260.        dc.w       32742,32748,32753,32757,32761,32763,32765,32767,32767,32767,32765,32763
  2261.        dc.w       32761,32757,32753,32748,32742,32735,32727,32719,32710,32700,32690,32678
  2262.        dc.w       32666,32653,32639,32624,32609,32593,32576,32558,32540,32520,32500,32479
  2263.        dc.w       32458,32435,32412,32388,32363,32338,32311,32284,32256,32228,32198,32168
  2264.        dc.w       32137,32105,32073,32039,32005,31970,31935,31898,31861,31823,31785,31745
  2265.        dc.w       31705,31664,31622,31580,31536,31492,31447,31402,31355,31308,31261,31212
  2266.        dc.w       31163,31113,31062,31010,30958,30905,30851,30796,30741,30685,30628,30571
  2267.        dc.w       30512,30453,30394,30333,30272,30210,30147,30084,30020,29955,29889,29823
  2268.        dc.w       29756,29689,29620,29551,29481,29411,29339,29267,29195,29121,29047,28972
  2269.        dc.w       28897,28821,28744,28666,28588,28509,28429,28349,28268,28186,28104,28021
  2270.        dc.w       27937,27853,27768,27682,27596,27509,27421,27333,27243,27154,27063,26972
  2271.        dc.w       26881,26788,26696,26602,26508,26413,26317,26221,26124,26027,25929,25830
  2272.        dc.w       25731,25631,25531,25429,25328,25225,25122,25019,24915,24810,24704,24599
  2273.        dc.w       24492,24385,24277,24169,24060,23950,23840,23730,23618,23507,23394,23281
  2274.        dc.w       23168,23054,22939,22824,22709,22592,22475,22358,22240,22122,22003,21884
  2275.        dc.w       21764,21643,21522,21400,21278,21156,21033,20909,20785,20660,20535,20410
  2276.        dc.w       20284,20157,20030,19902,19774,19646,19517,19388,19258,19127,18996,18865
  2277.        dc.w       18733,18601,18469,18335,18202,18068,17934,17799,17663,17528,17392,17255
  2278.        dc.w       17118,16981,16843,16705,16566,16427,16288,16148,16008,15867,15726,15585
  2279.        dc.w       15444,15301,15159,15016,14873,14730,14586,14442,14297,14152,14007,13861
  2280.        dc.w       13715,13569,13422,13276,13128,12981,12833,12685,12536,12388,12239,12089
  2281.        dc.w       11940,11790,11639,11489,11338,11187,11036,10884,10732,10580,10428,10275
  2282.        dc.w       10122,9969,9816,9662,9508,9354,9200,9046,8891,8736,8581,8426
  2283.        dc.w       8270,8114,7958,7802,7646,7489,7333,7176,7019,6862,6704,6547
  2284.        dc.w       6389,6231,6073,5915,5757,5598,5440,5281,5122,4963,4804,4645
  2285.        dc.w       4486,4326,4167,4007,3848,3688,3528,3368,3208,3048,2888,2727
  2286.        dc.w       2567,2407,2246,2086,1925,1765,1604,1443,1283,1122,961,800
  2287.        dc.w       639,479,318,157,-3,-164,-325,-486,-647,-808,-968,-1129
  2288.        dc.w       -1290,-1451,-1611,-1772,-1933,-2093,-2254,-2414,-2574,-2735,-2895,-3055
  2289.        dc.w       -3215,-3375,-3535,-3695,-3855,-4015,-4174,-4334,-4493,-4652,-4812,-4971
  2290.        dc.w       -5130,-5288,-5447,-5606,-5764,-5922,-6080,-6238,-6396,-6554,-6711,-6869
  2291.        dc.w       -7026,-7183,-7340,-7497,-7653,-7809,-7966,-8121,-8277,-8433,-8588,-8743
  2292.        dc.w       -8898,-9053,-9207,-9362,-9516,-9669,-9823,-9976,-10129,-10282,-10435,-10587
  2293.        dc.w       -10739,-10891,-11043,-11194,-11345,-11496,-11646,-11797,-11946,-12096,-12245,-12394
  2294.        dc.w       -12543,-12692,-12840,-12988,-13135,-13282,-13429,-13576,-13722,-13868,-14014,-14159
  2295.        dc.w       -14304,-14448,-14592,-14736,-14880,-15023,-15166,-15308,-15450,-15592,-15733,-15874
  2296.        dc.w       -16014,-16155,-16294,-16434,-16573,-16711,-16849,-16987,-17124,-17261,-17398,-17534
  2297.        dc.w       -17670,-17805,-17940,-18074,-18208,-18342,-18475,-18607,-18739,-18871,-19002,-19133
  2298.        dc.w       -19264,-19393,-19523,-19652,-19780,-19908,-20036,-20163,-20289,-20415,-20541,-20666
  2299.        dc.w       -20791,-20915,-21038,-21161,-21284,-21406,-21528,-21649,-21769,-21889,-22008,-22127
  2300.        dc.w       -22246,-22364,-22481,-22598,-22714,-22829,-22945,-23059,-23173,-23287,-23399,-23512
  2301.        dc.w       -23623,-23735,-23845,-23955,-24065,-24174,-24282,-24390,-24497,-24603,-24709,-24815
  2302.        dc.w       -24919,-25023,-25127,-25230,-25332,-25434,-25535,-25636,-25735,-25835,-25933,-26031
  2303.        dc.w       -26129,-26225,-26322,-26417,-26512,-26606,-26700,-26793,-26885,-26976,-27067,-27158
  2304.        dc.w       -27247,-27336,-27425,-27513,-27600,-27686,-27772,-27857,-27941,-28025,-28108,-28190
  2305.        dc.w       -28272,-28353,-28433,-28513,-28591,-28670,-28747,-28824,-28900,-28976,-29050,-29124
  2306.        dc.w       -29198,-29270,-29342,-29414,-29484,-29554,-29623,-29691,-29759,-29826,-29892,-29958
  2307.        dc.w       -30023,-30087,-30150,-30213,-30275,-30336,-30396,-30456,-30515,-30573,-30631,-30687
  2308.        dc.w       -30743,-30799,-30853,-30907,-30960,-31012,-31064,-31115,-31165,-31214,-31263,-31310
  2309.        dc.w       -31357,-31404,-31449,-31494,-31538,-31581,-31624,-31665,-31706,-31747,-31786,-31825
  2310.        dc.w       -31863,-31900,-31936,-31972,-32007,-32041,-32074,-32106,-32138,-32169,-32199,-32229
  2311.        dc.w       -32257,-32285,-32312,-32339,-32364,-32389,-32413,-32436,-32458,-32480,-32501,-32521
  2312.        dc.w       -32540,-32559,-32576,-32593,-32609,-32625,-32639,-32653,-32666,-32678,-32690,-32700
  2313.        dc.w       -32710,-32719,-32727,-32735,-32741,-32747,-32752,-32757,-32760,-32763,-32765,-32766
  2314.        dc.w       -32767,-32766,-32765,-32763,-32760,-32756,-32752,-32747,-32741,-32734,-32727,-32718
  2315.        dc.w       -32709,-32699,-32689,-32677,-32665,-32652,-32638,-32623,-32608,-32592,-32575,-32557
  2316.        dc.w       -32539,-32519,-32499,-32478,-32457,-32434,-32411,-32387,-32362,-32337,-32310,-32283
  2317.        dc.w       -32255,-32226,-32197,-32167,-32136,-32104,-32071,-32038,-32004,-31969,-31933,-31897
  2318.        dc.w       -31860,-31822,-31783,-31743,-31703,-31662,-31620,-31578,-31535,-31490,-31446,-31400
  2319.        dc.w       -31354,-31307,-31259,-31210,-31161,-31111,-31060,-31008,-30956,-30903,-30849,-30794
  2320.        dc.w       -30739,-30683,-30626,-30569,-30510,-30451,-30392,-30331,-30270,-30208,-30145,-30082
  2321.        dc.w       -30018,-29953,-29887,-29821,-29754,-29686,-29618,-29549,-29479,-29408,-29337,-29265
  2322.        dc.w       -29192,-29119,-29045,-28970,-28894,-28818,-28741,-28664,-28585,-28507,-28427,-28347
  2323.        dc.w       -28266,-28184,-28101,-28018,-27935,-27850,-27765,-27679,-27593,-27506,-27418,-27330
  2324.        dc.w       -27241,-27151,-27061,-26970,-26878,-26786,-26693,-26599,-26505,-26410,-26314,-26218
  2325.        dc.w       -26121,-26024,-25926,-25827,-25728,-25628,-25528,-25426,-25325,-25222,-25119,-25016
  2326.        dc.w       -24912,-24807,-24701,-24595,-24489,-24382,-24274,-24166,-24057,-23947,-23837,-23727
  2327.        dc.w       -23615,-23504,-23391,-23278,-23165,-23051,-22936,-22821,-22705,-22589,-22472,-22355
  2328.        dc.w       -22237,-22119,-22000,-21880,-21760,-21640,-21519,-21397,-21275,-21153,-21029,-20906
  2329.        dc.w       -20782,-20657,-20532,-20406,-20280,-20154,-20027,-19899,-19771,-19643,-19514,-19384
  2330.        dc.w       -19254,-19124,-18993,-18862,-18730,-18598,-18465,-18332,-18199,-18065,-17930,-17795
  2331.        dc.w       -17660,-17524,-17388,-17252,-17115,-16977,-16840,-16701,-16563,-16424,-16285,-16145
  2332.        dc.w       -16005,-15864,-15723,-15582,-15440,-15298,-15156,-15013,-14870,-14726,-14582,-14438
  2333.        dc.w       -14294,-14149,-14003,-13858,-13712,-13566,-13419,-13272,-13125,-12977,-12830,-12681
  2334.        dc.w       -12533,-12384,-12235,-12086,-11936,-11786,-11636,-11486,-11335,-11184,-11032,-10881
  2335.        dc.w       -10729,-10577,-10424,-10272,-10119,-9966,-9813,-9659,-9505,-9351,-9197,-9042
  2336.        dc.w       -8888,-8733,-8578,-8422,-8267,-8111,-7955,-7799,-7643,-7486,-7329,-7173
  2337.        dc.w       -7016,-6858,-6701,-6543,-6386,-6228,-6070,-5912,-5754,-5595,-5437,-5278
  2338.        dc.w       -5119,-4960,-4801,-4642,-4483,-4323,-4164,-4004,-3845,-3685,-3525,-3365
  2339.        dc.w       -3205,-3045,-2885,-2724,-2564,-2404,-2243,-2083,-1922,-1762,-1601,-1440
  2340.        dc.w       -1280,-1119,-958,-797,-636,-476,-315,-154
  2341. rotsin.e
  2342.  
  2343.        dc.w       1,161,322,483,643,804,965,1126,1286,1447,1608,1768
  2344.        dc.w       1929,2090,2250,2411,2571,2731,2892,3052,3212,3372,3532,3692
  2345.        dc.w       3851,4011,4171,4330,4490,4649,4808,4967,5126,5285,5444,5602
  2346.        dc.w       5761,5919,6077,6235,6393,6550,6708,6865,7023,7180,7336,7493
  2347.        dc.w       7650,7806,7962,8118,8274,8429,8585,8740,8895,9049,9204,9358
  2348.        dc.w       9512,9666,9819,9973,10126,10279,10431,10584,10736,10888,11039,11191
  2349.        dc.w       11342,11492,11643,11793,11943,12093,12242,12391,12540,12688,12836,12984
  2350.        dc.w       13132,13279,13426,13572,13719,13865,14010,14155,14300,14445,14589,14733
  2351.        dc.w       14876,15020,15162,15305,15447,15588,15730,15871,16011,16151,16291,16430
  2352.        dc.w       16569,16708,16846,16984,17121,17258,17395,17531,17666,17802,17937,18071
  2353.        dc.w       18205,18338,18472,18604,18736,18868,18999,19130,19261,19390,19520,19649
  2354.        dc.w       19777,19905,20033,20160,20286,20413,20538,20663,20788,20912,21035,21159
  2355.        dc.w       21281,21403,21525,21646,21766,21886,22006,22125,22243,22361,22478,22595
  2356.        dc.w       22711,22827,22942,23056,23170,23284,23397,23509,23621,23732,23843,23953
  2357.        dc.w       24062,24171,24279,24387,24494,24601,24707,24812,24917,25021,25125,25228
  2358.        dc.w       25330,25432,25533,25633,25733,25832,25931,26029,26126,26223,26319,26415
  2359.        dc.w       26510,26604,26698,26790,26883,26974,27065,27156,27245,27334,27423,27511
  2360.        dc.w       27598,27684,27770,27855,27939,28023,28106,28188,28270,28351,28431,28511
  2361.        dc.w       28590,28668,28746,28822,28899,28974,29049,29123,29196,29269,29341,29412
  2362.        dc.w       29483,29552,29622,29690,29758,29825,29891,29956,30021,30085,30149,30211
  2363.        dc.w       30273,30334,30395,30455,30514,30572,30629,30686,30742,30798,30852,30906
  2364.        dc.w       30959,31011,31063,31114,31164,31213,31262,31309,31357,31403,31448,31493
  2365.        dc.w       31537,31580,31623,31665,31706,31746,31785,31824,31862,31899,31936,31971
  2366.        dc.w       32006,32040,32073,32106,32138,32169,32199,32228,32257,32285,32312,32338
  2367.        dc.w       32364,32389,32413,32436,32458,32480,32501,32521,32540,32559,32576,32593
  2368.        dc.w       32609,32625,32639,32653,32666,32678,32690,32700,32710,32719,32728,32735
  2369.        dc.w       32742,32748,32753,32757,32761,32763,32765,32767,32767,32767,32765,32763
  2370.        dc.w       32761,32757,32753,32748,32742,32735,32727,32719,32710,32700,32690,32678
  2371.        dc.w       32666,32653,32639,32624,32609,32593,32576,32558,32540,32520,32500,32479
  2372.  
  2373. rotsin_l    equ    rotsin.e-rotsin
  2374.     endc
  2375.     
  2376. rotoff
  2377.         ifd    calc
  2378.         ds.l    rotpic_wid*8*rotpic_hgt
  2379.         endc
  2380.         ifnd    calc
  2381.         incbin    'w:binaga/tun1.bin'
  2382.         cnop    0,2
  2383.         endc
  2384. rotoff.e
  2385. ;rotoff_l    equ    rotoff.e-rotoff
  2386.  
  2387. rotcol        ds.b    rottun_hgt*rottun_wid
  2388. rotcol.e
  2389.         ds.b    rottun_hgt*rottun_wid
  2390.         
  2391. rotcol_l    equ    rotcol.e-rotcol
  2392.  
  2393. rotcoppic    incbin    'w:bin/coppertunnel_l32.bin'
  2394.  
  2395. rotp.e
  2396.  
  2397.     SECTION    11,code_c
  2398.     cnop    0,8
  2399. rotc
  2400.     ifnd    ocs
  2401.     dc.l    'ROTA'
  2402.     endc
  2403.     ifd    ocs
  2404.     dc.l    'ROTO'
  2405.     endc
  2406.     rts
  2407.     cnop    0,8
  2408.  
  2409.         ifd    calc
  2410. rotpic
  2411.         ifnd    ocs
  2412.         dc.l    'PICT'
  2413.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2414.         ds.b    8*4
  2415.         ds.b    16
  2416.         dc.w    32-1
  2417.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2418.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2419.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2420.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2421.         ds.l    256-32
  2422.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2423.         endc    
  2424.         ifd    ocs
  2425.         dc.l    'PICT'
  2426.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2427.         ds.b    4*4
  2428.         dc.w    32-1
  2429.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2430.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2431.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2432.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2433.         ds.w    256-32
  2434.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2435.         endc    
  2436.         endc
  2437.  
  2438.         ifnd    calc
  2439.         cnop    0,8
  2440. rotpic
  2441.         ifnd    ocs
  2442.         dc.l    'PICT'
  2443.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2444.         ds.b    8*4
  2445.         ds.b    16
  2446.         dc.w    8-1
  2447.         dc.w    $000,0,$fff,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2448.         ds.l    256-8
  2449.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2450.         endc
  2451.         ifd    ocs
  2452.         dc.l    'PICT'
  2453.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2454.         ds.b    4*4
  2455.         dc.w    8-1
  2456.         dc.w    $000,$fff,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2457.         ds.w    256-8
  2458.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2459.         endc
  2460. rotpic.e
  2461.         cnop    0,8
  2462. rotpic2
  2463.         ifnd    ocs
  2464.         dc.l    'PICT'
  2465.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2466.         ds.b    8*4
  2467.         ds.b    16
  2468.         dc.w    8-1
  2469.         dc.w    $000,0,$fff,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2470.         ds.l    256-8
  2471.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2472.         endc
  2473.         ifd    ocs
  2474.         dc.l    'PICT'
  2475.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2476.         ds.b    4*4
  2477.         dc.w    7
  2478.         dc.w    $000,$fff,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2479.         ds.w    256-8
  2480.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2481.         endc
  2482.         endc
  2483.  
  2484.         cnop    0,8
  2485.  
  2486.     ifnd    calc
  2487. rotcop1
  2488.     dc.w    $80,0,$82,0
  2489.  
  2490. rotcoptus.s
  2491.     dc.w    $003d,$fffe
  2492.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2493.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2494.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2495.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2496.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2497. rotcoptus.e
  2498. rotcoptus_l    equ    rotcoptus.e-rotcoptus.s
  2499.  
  2500.     rept    rotcop_hgt-1
  2501.     dc.w    $003d,$fffe
  2502.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2503.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2504.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2505.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2506.     dc.w    $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
  2507.     endr
  2508.     dc.w    $088,$000
  2509.     endc
  2510. rotc.e
  2511. rot.e
  2512.  
  2513. ;**********************************************************************
  2514.  
  2515.     ifd    rout
  2516. rotsrc
  2517.     incbin    'w:effectaga/tunnel1_l2.bck'
  2518. ;    incbin    'w:effectaga/world_l8.bck'
  2519. ;    incbin    'w:effectaga/copperpic_l8.bck'
  2520. ;    incbin    'w:effectaga/copperpic_l64.bck'
  2521.     cnop    0,2
  2522.     endc
  2523.  
  2524.